可能重复:
.msi和setup.exe文件有哪些具体区别?
我正在为我的项目的新版本(C#)安装一个安装程序。
以前,我用过 Inno设置 创造 .exe
用于在工作场所的其他计算机上安装我的项目的文件。虽然阅读了一些教程,但我遇到了 Windows Installer XML,它使用XML文件来构建 .msi
安装程序。
我的项目将在所有员工都可以访问的网络共享中提供,以便他们可以安装软件(我目前正在处理更新检查程序)
有什么主要区别 .exe
和 .msi
安装?为什么我要选择一个而不是另一个?根据我的特定环境,要么更有意义吗?
我找到了一些信息 在这个问题上,但没有太多的信息。
我不会将WiX用于新项目。我在Visual Studio中使用“安装程序项目”来构建MSI。安装程序项目更容易组合在一起。
许多exe安装程序实际上是存放MSI的存根或容器,顺便说一下。
我猜你已经退房了 http://en.wikipedia.org/wiki/Windows_Installer?
MSI使管理员能够限制安装,重新安装,更改或添加自定义操作,自动执行安装/重新安装/卸载,标准日志记录和交换机。它真正集成到企业IT环境中( http://technet.microsoft.com/en-us/library/bb742606.aspx )。
自定义安装程序可能具有许多这些功能,但这取决于安装程序包。
目前可用的大多数EXE安装程序都是简单的存根,用于验证目标计算机是否具有足够的支持来启动存储在EXE中的MSI。他们进行基本的Windows版本检查和Windows Installer版本检查,然后基本上调用msiexec并让Windows Installer处理剩下的工作。
对于非常基本的安装,Visual Studio中的安装程序项目可以帮助您,但对于任何类型的真正自定义或调整,您将需要一个真正的MSI编辑器。我们使用WiX并喜欢它 - 但这是一个值得学习的熊。如果你有现金,你可以投资InstallShield - 但这有它自己的一套怪癖。
MSI是 配置 而EXE不是。我知道这不能直接回答你的问题,但我认为我应该指向ClickOnce技术。
MSDN: 见这里的例子。
简单地说,是一个ClickOnce应用程序
是任何Windows演示文稿
基础,Windows窗体或控制台
使用ClickOnce发布的应用程序
技术。你可以发表一个
ClickOnce应用程序有三个
不同的方式:来自网页,来自
网络文件共享,或来自媒体
例如CD-ROM。 ClickOnce
应用程序可以安装在一端
用户的计算机甚至在本地运行
当计算机离线时,或者它
可以在仅在线模式下运行
没有永久安装
最终用户计算机上的任何内容。
有关更多信息,请参阅选择a
ClickOnce部署策略。
IndigoRose的MSI工厂非常强大,比InstallShield便宜得多。
它在内部使用WiX,允许您以任何您喜欢的方式修改XML文件。引导程序(.exe,如果你添加一个)有一个强大的基于Lua的脚本引擎来做任何事情。