问题 MSI和EXE安装程序之间有什么区别,我应该选择哪个? [重复]


可能重复:
.msi和setup.exe文件有哪些具体区别? 

我正在为我的项目的新版本(C#)安装一个安装程序。

以前,我用过 Inno设置 创造 .exe 用于在工作场所的其他计算机上安装我的项目的文件。虽然阅读了一些教程,但我遇到了 Windows Installer XML,它使用XML文件来构建 .msi 安装程序。

我的项目将在所有员工都可以访问的网络共享中提供,以便他们可以安装软件(我目前正在处理更新检查程序)

有什么主要区别 .exe 和 .msi 安装?为什么我要选择一个而不是另一个?根据我的特定环境,要么更有意义吗?

我找到了一些信息 在这个问题上,但没有太多的信息。


6513
2018-03-16 07:22


起源

也可以看看 stackoverflow.com/questions/902841/... - rds


答案:


我不会将WiX用于新项目。我在Visual Studio中使用“安装程序项目”来构建MSI。安装程序项目更容易组合在一起。

许多exe安装程序实际上是存放MSI的存根或容器,顺便说一下。

我猜你已经退房了 http://en.wikipedia.org/wiki/Windows_Installer

MSI使管理员能够限制安装,重新安装,更改或添加自定义操作,自动执行安装/重新安装/卸载,标准日志记录和交换机。它真正集成到企业IT环境中( http://technet.microsoft.com/en-us/library/bb742606.aspx )。

自定义安装程序可能具有许多这些功能,但这取决于安装程序包。


5
2018-03-16 07:32



只是想让任何看过这个答案的人都知道2010年以后的Visual Studio版本不再准确.Visual Studio 2012不再支持安装和部署项目。 - Justin Skiles
对于Visual Studio 2013及更高版本,VS市场上有一个名为“Microsoft Visual Studio 2013安装程序项目”(用您的版本替换2013)的扩展,它支持旧的安装程序项目。但是,它有一个错误,阻止它安装64位应用程序,它生成的向导中的文本没有抗锯齿,所以它看起来过时了。 - Tsahi Asher


目前可用的大多数EXE安装程序都是简单的存根,用于验证目标计算机是否具有足够的支持来启动存储在EXE中的MSI。他们进行基本的Windows版本检查和Windows Installer版本检查,然后基本上调用msiexec并让Windows Installer处理剩下的工作。

对于非常基本的安装,Visual Studio中的安装程序项目可以帮助您,但对于任何类型的真正自定义或调整,您将需要一个真正的MSI编辑器。我们使用WiX并喜欢它 - 但这是一个值得学习的熊。如果你有现金,你可以投资InstallShield - 但这有它自己的一套怪癖。


5
2018-03-16 08:07





MSI是 配置 而EXE不是。我知道这不能直接回答你的问题,但我认为我应该指向ClickOnce技术。

MSDN见这里的例子。

简单地说,是一个ClickOnce应用程序   是任何Windows演示文稿   基础,Windows窗体或控制台   使用ClickOnce发布的应用程序   技术。你可以发表一个   ClickOnce应用程序有三个   不同的方式:来自网页,来自   网络文件共享,或来自媒体   例如CD-ROM。 ClickOnce   应用程序可以安装在一端   用户的计算机甚至在本地运行   当计算机离线时,或者它   可以在仅在线模式下运行   没有永久安装   最终用户计算机上的任何内容。   有关更多信息,请参阅选择a   ClickOnce部署策略。


3
2018-03-16 10:44



有趣 - 我知道ClickOnce,但我认为这只是一种通过互联网分发软件的方法。我将不得不看看网络共享的内容 - 谢谢! - Jared Harley
不幸的是,ClickOnce没有CustomActions。 - ABCD


IndigoRose的MSI工厂非常强大,比InstallShield便宜得多。

它在内部使用WiX,允许您以任何您喜欢的方式修改XML文件。引导程序(.exe,如果你添加一个)有一个强大的基于Lua的脚本引擎来做任何事情。


1
2018-03-21 06:49