一旦我的NW.js项目完成并打包,我就得到了一个漂亮的Whatever.zip
。用户打开该文件归档,找到一个名为Whatever
的目录,并将其提取到桌面。然后打开dir.
在里面,他们发现了大量的文件(d3dcompiler_47.dll
,nw_elf.dll
,resources.pak
等)和子目录(locales
等),在那里的某个地方,我的Whatever.exe
和README.txt
。
这看起来很乱。
我希望,相反,用户打开目录,发现只有这个:
Whatever.exe
README.txt
<DIR> NWJs
那就太干净了。用户将立即看到他们应该运行的EXE,以及我制作的README.txt。如果他们非常好奇,他们可以进入NWJs
目录,找到所有与我的应用程序100%无关的文件。
我知道有一个第三方的"谜";东西,把所有东西都变成一个文件。那不是我想要的。
是的,我知道我可以制作一个供人们使用的安装程序,我也这样做。这个和那个也没有关系。
有可能吗?我一直不明白他们为什么做出这样的设计选择。但是没有明显的方法(IMO)来完成这一点,因为EXE文件(重命名和图标更改的NW.exe)期望所有这些奇怪的小(和大)文件在同一个目录下。我当然希望这可以配置,而不必"构建一个自定义的nw"。(很遗憾,这是不可能发生的)。
这个设计选择是由Chromium做出的,NW.js只是继承了它。Chromium一直是为非技术人员设计的。这意味着它只能由安装程序分发,该安装程序将这些文件放在Program Files
文件夹中,或者类似的地方,然后在桌面上或开始菜单上创建可执行文件的快捷方式。
如果你想这样做,有工具像NSIS, WinRAR的SFX,或Inno Setup。还有一些自动构建工具(如NW.js Builder Phoenix),尽管没有得到很好的维护,但它们可以简化安装程序的创建。
或者,如果您有更多的技术用户,您可以直接执行"解压缩/双击"接近,就像你现在做的。没有办法让支持文件与可执行文件在同一目录下。