Node.js选择.msi还是.exe

3
Node.js 网站上,可以下载适用于 Windows 的两种软件包: .exe.msi。然而,.exe 似乎只能打开命令提示符窗口。
这两种软件包有何区别?如何选择?
我在任何地方都找不到答案。

1
一个是安装程序(.msi),另一个是二进制文件(.exe)。安装程序会将二进制文件和其他一些东西(如NPM)一起安装,并将其添加到您的PATH中。 - Ben Fortune
我考虑了一下 .exe "include" .msi,就像这里描述的那样(https://dev59.com/oHI-5IYBdhLWcg3wkJMA)。但是,我只得到了一个没有任何安装过程的外壳,启动了 .exe - Luca Detomi
这是因为 .exe 是二进制文件而不是安装程序... - Ben Fortune
我不偏向任何一种方式 - 如果我在某个地方安装了它,我只需为 Windows 创建一个 zip 版本并调整路径/变量。 - bhantol
1个回答

0
大多数情况下,.msi包只是用于通过企业基础架构(如活动目录)部署的.exe的包装器。
内部结构存在差异,归结为.msi是Windows安装的文件格式,而.exe可以是任何可执行文件。
更准确地说,在这里,.msi利用了WindowsInstaller API,而.exe通常不会使用。
进一步阅读Windows应用程序安装程序框架

很抱歉,但在这个主题中写道:“_setup.exe可能是引导程序或非msi安装程序。非msi安装程序将从自身提取安装资源并直接管理其安装。引导程序将包含一个MSI而不是单个文件。在这种情况下,setup.exe将调用Windows Installer来安装MSI._” 这似乎是相反的概念。我错了吗? - Luca Detomi
1
@LucaDetomi 他们在谈论安装可执行文件,而不是一般的可执行文件。Node.js的.exe文件不是安装文件,它是一个编译后的Windows二进制文件。 - Ben Fortune
1
@LucaDetomi,您可以编写一个 .exe 文件来调用一个 msi 文件或底层系统调用。关键在于 .msi 文件依赖于 Microsoft 主机,并且主要进行 api 调用,而 .exe 文件则通过自身处理文件拷贝和注册。您可以将 msi 文件视为脚本而非实际可执行文件。 - Maximilian Kindshofer
好的,那么……在Node.js中选择什么来处理这种特定的行为呢?你向我解释了它们之间的区别,但在哪种情况下我应该选择node.js msi安装程序,而在哪种情况下我应该选择exe包呢? - Luca Detomi
如果您打算在不同的工作站上部署node.js,您可以选择获取.msi文件,并在其中更改一些设置。对于单个安装,通常选择exe包,但msi文件同样适用。 - Maximilian Kindshofer
我需要降级Node版本。我安装了最新的6.6.0版本,但它与Webstorm存在问题。我的同事们使用5.x版本,没有遇到任何问题。我在Node网站上找到了所有版本,但它们都是*.exe格式。如果我卸载当前的Node...那么如果旧版本只有*.exe格式,我该如何安装它呢? - Amiga500

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接