我正在为我的项目的新版本(C#)开发安装程序。
以前,我使用 Inno Setup 创建
.exe
文件,用于在工作场所的其他计算机上安装我的项目。不过,在阅读一些教程时,我遇到了 Windows Installer XML,它使用 XML 文件来构建 .msi
安装程序。
我的项目将在所有员工都可以访问的网络共享上提供,以便他们可以安装软件(我目前也在开发更新检查器)
.exe
和 .msi
安装程序之间的主要区别是什么?我为什么要选择其中之一而不是另一个?考虑到我的具体环境,这两种方法更有意义吗?
我在这个问题找到了一些信息,但是信息不是很多。
Visual Studio
中的
Installer Project
来构建 MSI。安装程序项目的组合要容易得多。
许多 exe 安装程序实际上是保存 MSI 的存根或容器,顺便说一句。我想您已经查看过
http://en.wikipedia.org/wiki/Windows_Installer?
MSI 使管理员能够限制安装、重新安装、更改或添加自定义操作、自动安装/重新安装/卸载、标准日志记录和切换。它真正集成到企业 IT 环境中 (https://web.archive.org/web/20130425213006/https://technet.microsoft.com/en-us/library/bb742606.aspx )。
自定义安装程序可能具有其中许多功能,但这取决于安装程序包。
对于非常基本的安装,Visual Studio 中的安装程序项目可以帮助您完成,但对于几乎任何类型的真正自定义或调整,您将需要一个真正的 MSI 编辑器。我们使用 WiX 并且喜欢它 - 但它很难学习。如果您有足够的现金,您可以投资 InstallShield - 但这有它自己的一套怪癖。
可配置的,而 EXE 则不是。我知道这并不能直接回答您的问题,但我想我应该指出 ClickOnce 技术。
MSDN:请参阅此处的示例。
简单来说,一个 ClickOnce 应用程序 是任何 Windows 演示文稿 Foundation、Windows 窗体或控制台 使用 ClickOnce 发布的应用程序 技术。您可以发布一个 ClickOnce应用程序分三部分 不同的方式:从网页,从 网络文件共享,或来自媒体 例如 CD-ROM。单击一次 应用程序可以安装在一端 用户计算机并在本地运行 当计算机离线时,或者 可以在仅在线模式下运行 无需永久安装 最终用户计算机上的任何内容。 有关详细信息,请参阅选择 ClickOnce 部署策略。
它内部使用 WiX,允许您以任何您喜欢的方式修改 XML 文件。引导程序(.exe,如果您添加一个)有一个基于 Lua 的强大脚本引擎,可以做任何事情。