我有一个需要作为一个包提供的应用程序。
答案 0 :(得分:5)
这取决于你在说什么类型的EXE。
MSI是由Windows Installer运行的安装程序包。如果使用Visual Studio进行安装项目,它将为您提供MSI和EXE。在这种情况下,EXE只是一个引导程序(MSI or EXE)。在检查Windows Installer到位后,它将运行MSI。
如果您使用InnoSetup等其他工具,则此EXE本身就是一个安装程序包,而不是一个引导程序。
关于MSI编辑器的问题:Orca MSI Editor。
如果不需要非常复杂的安装程序,我建议使用Visual Studio安装项目,因为它简单但功能强大。
答案 1 :(得分:3)
现在,许多安装程序在内部使用MSI,尽管它们是作为EXE分发的。您需要一个EXE来确保安装所有先决条件:例如.NET框架;如果不是,它会安装先决条件。然后它提取处理剩余安装的MSI包。
MSI提供了一些高级安装功能:
虽然学习这项技术需要一些时间。
您可以从EXE文件执行任何操作,而MSI仅用于安装。 Inno Setup和NSIS安装包作为exe文件分发。他们使用脚本语言来描述安装步骤。
WiX toolset有一个名为dark
的MSI反编译器。
答案 2 :(得分:2)
答案 3 :(得分:2)
我在serverfault.com上发布了一些MSI好处(和问题)的摘要:
https://serverfault.com/questions/11670/advantages-of-using-msi-files
答案 4 :(得分:1)
MSI是一个Microsoft安装程序,它比旧的EXE,Wise Installer和许多其他人支持它更新。它允许更智能地安装需要部署的内容(如CAB文件和注册表设置等...),它可以检查以前的安装等。
MSI仅是安装,而EXE可以执行其他操作。
我会使用InstallShield并构建一个MSI
我不确定#2
答案 5 :(得分:1)
您可以告诉Visual Studio将您的应用程序转换为MSI / EXE。如果这样做并且做你想做的事,就这样做吧。您需要付出很多努力才能创建安装程序。
MSI表示您使用的是Microsoft的安装程序。 Microsoft有正当理由推荐(即不提供您的应用程序认证)MSI。但是,良好的MSI很难生产,所以除非您需要申请认证,否则我不推荐它。
如果您不需要认证,我建议使用Inno Setup以及ISTool这样的前端。它易于使用,并为您提供简单的界面来执行最常见的安装程序任务。在紧要关头,它支持脚本,允许你做任何它不支持的事情。