在.msi安装程序中包装C#应用程序

我在Visual Studio 2017中创建了一个C#应用程序。现在我想将我的应用程序作为单个Windows安装程序文件分发。 我希望有一个简单的一键式解决方案(选择我要包含的所有文件 – >瞧!这是安装程序)。 但它似乎并不那么容易:-(

我经常读到Visual Studio支持安装项目。 但这似乎不再是这种情况了,对吧?

第三方工具要么非常复杂(例如Wix,Inno Setup),要么非常昂贵(例如Advanced Installer)。

是否真的没有简单的方法来包装.msi Windows安装程序中的某些文件? Microsoft是否不提供创建此类安装程序的工具?

或者非常昂贵(例如Advanced Installer)。

还有一个免费版本,其中包含用于Advanced Installer的Visual Studio扩展,您可以使用它来构建MSI包。

以下教程介绍了如何使用免费版中的function(“简单”项目类型):

PS我在团队建设高级安装程序上工作。

有一次,Microsoft确实从Visual Studio 1中删除了“Visual Studio Installer Project”支持。 之后他们又心软了,又补充了支持。 我不记得哪个版本没有支持,我认为是2012年和2013年。

这些天(对于VS2017),要获得Visual Studio Installer Project支持,您可以从市场中添加它 :

此扩展提供与Visual Studio 2015 for Visual Studio Installer项目中当前存在的function相同的function。 要使用此扩展,您可以打开“扩展和更新”对话框,选择在线节点,然后搜索“Visual Studio Installer项目扩展”,也可以直接从此页面下载。

但就个人而言,我会选择WIX。 它确实有一个学习曲线,但我认为这是值得做的。


1我个人认为这是非常好的理由。 您必须完全安装Visual Studio才能使它们正常工作,它们并没有真正与MSBuild集成,如果您想要自动化构建,这将使它们变得很痛苦。

VS安装程序项目 :已经有几个很好的答案 – 值得一试。 如其他人所述,您可以使用Microsoft Visual Studio 2017安装程序项目 – 尽可能有限。 我记得它们具有一些先决条件function 。 我对该工具的经验有限。 可以为非常简单的事情工作,但你很快就会发现局限性。

WiX :我个人会使用WiX,因为它也是免费且灵活的 – 它需要一些努力,但是非常有能力。 这是一个WiX快速入门提示答案 (坦白说,这不是我最喜欢的答案,但它已经比平时更受欢迎,所以我没有改变它)。

IsWiX :还有IsWix – 一个帮助创建WiX设置的GUI工具( Chris Painter的工作)。 他的WiX教程和快速的YouTube演示 。

Et Al商业工具 ( Installshield , Advanced Installer (参见Bogdan在这个“线程”中的答案), PACE Suite 等 )也很好 – 你的时间成本也是如此。 一旦你加起来就会令人震惊 – 你肯定会用商业工具更快地运行。 如何创建Windows安装程序 (链接到相当全面的工具列表和一些MSI信息)。 更多链接如下。


除此之外,我将链接到一些预先存在的答案,其中包含有关各种工具的信息:

  • Windows服务未显示在控制面板下添加删除程序
  • 使用什么安装产品? InstallShield,WiX,Wise,Advanced Installer等