在Visual Studio 2013中创建应用程序安装包

90

我已经有一个准备好构建的项目。目前,我正在使用Visual Studio 2013。

但是,我不知道如何在Visual Studio 2013中创建MSI设置,但对于Visual Studio 2010,有很多教程介绍如何在其中创建设置。

  • 这是否意味着我需要安装Visual Studio 2010才能为我的项目创建应用程序设置?

  • 在Visual Studio 2013中创建应用程序设置的最简单方法是什么?


2
尝试使用Windows Installer XML(WIX),它非常可定制和可扩展,而且您可以将其与CI构建集成。应用程序安装项目在2012年被删除,如果您仍需要快速且简单的安装程序,则可以使用曾经包含的Installshield SE。在2013年使用WIX - Mgetz
自VS 2012以后,就没有像2010中那样的部署项目了。 - kostas ch.
1
请问Mgetz,ClickOnce怎么样?我该如何使用ClickOnce? - Kaoru
@Kaoru 我从来没有在任何版本的VS中可靠地使用过Clickonce,所以我帮不上太多忙。但理论上它应该可以工作。 - Mgetz
2
ClickOnce有一些相当奇怪的特点:您必须从原始安装目录执行同一安装的新版本,才能进行自动更新。此外,似乎您必须携带附加的文件夹与clickonce .exe。我的做法是使用WinRAR将ClickOnce安装程序包装在SFX存档中,始终从临时目录执行它,并创建一个“不需要点击甚至不到一次的安装程序”。 - ASA
@Kaoru 要使用 ClickOnce,请进入项目参数的发布部分,选择您想要发布的位置,如果您的应用程序有任何资产,请不要忘记 application files 按钮。它将打开一个窗口,您可以在其中指定是否要将项目文件包含到安装中。 - Irwene
7个回答

131

1
新鮮且非常有用的資訊。微軟應該改進他們相關的文章KB2900817 - satoc
4
不必读文章了,它只是告诉你做以下事情:进入“工具”->“扩展和更新”菜单。选择“在线”选项卡。搜索“Visual Studio安装程序项目扩展”。 - Prisoner ZERO
我有一个VS 2010解决方案,其中包含一个安装程序项目。当使用VS 2010构建解决方案时,会创建一个msi文件。现在我们只有VS 2013,并且我无法更改/迁移安装程序项目。我该怎么做才能创建msi文件? - Jirong Hu
您可以使用该扩展名创建新项目。 - Peter
@Peter,你能告诉我具体怎么做吗?我们没有计划将整个2010解决方案迁移到2013。如果扩展是针对2013的,我该如何为2010解决方案创建新的安装项目?谢谢。 - Jirong Hu
显示剩余2条评论

10

自Visual Studio 2012起,微软不再提供内置的部署包。如果你想使用该包,你需要使用VS2010。

在2013年,你有以下几个选择:

  • InstallShield
  • WiX
  • 自己开发

在我的项目中,我从头开始创建自己的安装程序,由于我不使用Windows Installer,因此它具有超级快的优势,即使在旧计算机上也是如此。


你好 @ming-slogar,你有没有什么示例应用程序,并使用这样的安装程序,你想和我们分享吗? - Highmastdon
@Highmastdon:我基本上只是使用本地C++创建了一个安装程序引导程序(配置为能够在不预先安装C++运行时库的情况下运行),该引导程序检查已安装的.NET并启动WPF GUI安装程序。 WPF安装程序允许用户选择一堆选项,然后复制文件并编写注册表键。我没有“示例”应用程序-我正在使用项目中的安装程序,但如果您需要,我可以尝试提取样本。 - Ming Slogar
我真的很想看到这个完整的例子。能分享一下吗?不是代码本身,而是概念和你的经验之类的东西?比如,你如何将它嵌入到将要安装的项目中,如何自动化常见事项(复制文件列表,规则:覆盖/不覆盖等)。此外,我目前正在使用NSIS,但我已经厌倦了它的脚本语言、丑陋的现代UI和非常缓慢的设计(它仍处于Windows XP时代)。 - Sinatr
@Sinatr 为了嵌入程序集,我大量使用资源文件 - 在 C++ 和 C# 中都是如此。复制文件时,我实际上很懒,手写每个文件操作(例如使用 File.WriteAllBytesFile.WriteAllText,具体取决于文件类型)。我没有处理覆盖现有文件的情况 - 我所有的程序集都以我的应用程序名称为前缀(例如 AppName.Controls.dll、AppName.Images.dll),因此重复文件的机会非常小。如果您想处理每种可能的情况,您将不得不像 Windows Installer 那样做 - 这有点违背了定制的目的。 - Ming Slogar
显示剩余2条评论

3

嗨@Hamid,完成窗体MSI安装后,我的原始文件(设计和编码)也显示在安装位置。我使用Visual Studio 2010开发了这个应用程序。安装程序已成功创建,但在安装该MSI之后出现了这个问题。请帮帮我。提前致谢。 - dilipkumar1007
尝试理解您的问题。您使用Visual Studio 2010创建了一个安装项目,但它无法与Visual Studio 2013一起使用? - Hamid Shahid

2

微软建议使用“Visual Studio的InstallShield Limited Edition”来替代已停用的“部署和安装项目”,但它并不如人意,也没有其他人建议使用它。但是对于简单的设置,如果没有问题依赖商业第三方产品,您可以使用它。

另一种选择是使用Windows Installer XML (WiX),但需要手动完成安装程序项目自动处理的许多事情。


我完全同意@Kiquenet的观点 - 你可以尝试从http://wix.tramontana.co.hu/学习教程。 - habakuk
我在VS 2010中安装了2015LE,并且可以在VS 2010中创建IS设置项目。现在我该如何在Jenkins中调用此项目?Jenkins的InstallShield插件要求提供ISCmdBld.exe的路径,但我在2015LE中找不到它。 - Jirong Hu

2

1
我将告诉你,我如何解决几乎相似的问题。我使用VS 2013开发了一个应用程序,并尝试创建向导但失败了。后来我安装了高级版的VS并尝试了一遍又失败了。
最后我使用了"ClickOnce",它运行良好。因此我相信,在这里也可以使用"CLICKONCE"帮助你。

1
除了安装程序Install Shield和WiX,还有Inno Setup可供选择。虽然我自己没有试过,但我听说它很不错。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接