windows-services - .msi 和 setup.exe 文件之间有什么具体区别?

标签 windows-services installation windows-installer

我查了很多,但都是猜测的答案。帮我找到确切的答案。

最佳答案

MSI 是 Windows Installer 数据库。 Windows Installer(随 Windows 安装的服务)使用它在您的系统上安装软件(即复制文件、设置注册表值等)。

setup.exe 可以是 Bootstrap ,也可以是非 msi 安装程序。非 MSI 安装程序将从自身提取安装资源并直接管理其安装。 Bootstrap 将包含 MSI,而不是单个文件。在这种情况下,setup.exe 将调用 Windows Installer 来安装 MSI。

您可能想要使用setup.exe的一些原因:

  • Windows Installer 一次仅允许安装一个 MSI。这意味着很难让 MSI 安装其他 MSI(例如 .NET 框架或 C++ 运行时等依赖项)。由于 setup.exe 不是 MSI,因此它可用于按顺序安装多个 MSI。
  • 您可能希望更精确地控制安装的管理方式。 MSI 对于如何管理安装(包括安装、升级和卸载)有非常具体的规则。 setup.exe 可以完全控制软件配置过程。仅当您确实需要额外的控制时才应执行此操作,因为这是一项繁重的工作,而且要做好它可能很棘手。

关于windows-services - .msi 和 setup.exe 文件之间有什么具体区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1789530/

相关文章:

c# - 如何在没有位置路径的情况下在 azure 存储上上传zip文件?

sql-server - 通过 windows 服务时,BizTalk 数据库上的登录失败异常,而它是通过 web api(在同一个库中)工作的

debugging - 如何调试在 Init() 方法中失败的 Windows 服务

hadoop文件系统列出我自己的根目录

c# - 使用 HeatDirectory 从 wix 中的多个目录中收集文件

xslt - WiX 3.5 从 Heat 安装服务,需要自定义操作?

shell - jq安装错误

c# - 创建接受启动参数的windows服务

c# - 是否可以将 setup.exe 和 setup.msi 图标更改为不同的图标?

c# - 防止在 Visual Studio 安装程序项目中自动添加依赖项