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

问题描述 投票:0回答:4

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

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

以前,我使用 Inno Setup 创建

.exe
文件,用于在工作场所的其他计算机上安装我的项目。不过,在阅读一些教程时,我遇到了 Windows Installer XML,它使用 XML 文件来构建
.msi
安装程序。

我的项目将在所有员工都可以访问的网络共享上提供,以便他们可以安装软件(我目前也在开发更新检查器)

.exe
.msi
安装程序之间的主要区别是什么?我为什么要选择其中之一而不是另一个?考虑到我的具体环境,这两种方法更有意义吗?

我在这个问题找到了一些信息,但是信息不是很多。

c# .net installation windows-installer exe
4个回答
6
投票
我不会在新项目中使用 WiX。我会使用

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 )。

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


6
投票
当今可用的大多数 EXE 安装程序只是存根,用于验证目标计算机是否具有足够的支持来启动 EXE 中存储的 MSI。他们进行基本的 Windows 版本检查和 Windows Installer 版本检查,然后实质上调用 msiexec 并让 Windows Installer 处理其余的工作。

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


4
投票
MSI 是

可配置的,而 EXE 则不是。我知道这并不能直接回答您的问题,但我想我应该指出 ClickOnce 技术。

MSDN请参阅此处的示例。

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


1
投票
IndigoRose 的 MSI 工厂非常强大,而且比 InstallShield 便宜得多。

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

© www.soinside.com 2019 - 2024. All rights reserved.