在 Visual Studio 2013 中创建应用程序设置

Posted

技术标签:

【中文标题】在 Visual Studio 2013 中创建应用程序设置【英文标题】:Create an application setup in visual studio 2013 【发布时间】:2013-12-19 13:22:18 【问题描述】:

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

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

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

的最简单方法是什么?

【问题讨论】:

试试Windows Installer XML (WIX),它具有极高的可定制性和可扩展性,您也可以将它与您的 CI 构建集成。应用程序设置项目在 2012 年被删除,如果您仍然需要一个快速而肮脏的安装程序,您可以使用一次包含的 Installshield SE。 Using WIX in 2013 VS 2012 和 2010 之后没有部署项目 点击一下@Mgetz 先生怎么样?以及如何使用一次点击? @Kaoru 我从来没有让 Clickonce 在任何版本的 VS 中可靠地工作,所以我不会提供太多帮助。但理论上它会起作用。 Clickonce 有一些相当奇怪的特性:您必须从原始安装目录执行相同安装的新版本才能自动更新。此外,您似乎必须随身携带带有 clickonce .exe 的附加文件夹。我所做的是使用 winrar 将 Clickonce 安装内容包装在 SFX 存档中,始终从 temp 目录执行它,并实质上创建“点击甚至少于一次安装程序”。 【参考方案1】:

Microsoft 听取了在 Visual Studio 中支持安装程序 (MSI) 的呼声,并发布了 Visual Studio Installer Projects Extension。您现在可以在 VS2013 中创建安装程序,download the extension here 来自 visualstudiogallery。

visual-studio-installer-projects-extension

【讨论】:

新的很棒的信息。微软应该改进他们的相关文章KB2900817 @peer 在 VS 2012 中没有解决方案?备择方案? VS2012 中的完整源代码示例? @kiquenet 不,不支持 vs2012。大多数项目都升级到 vs2013 并向后兼容 vs2012。 不要费心阅读这篇文章...它只是告诉您执行以下操作:转到工具 -> 扩展和更新。选择在线选项卡。搜索“Visual Studio 安装程序项目扩展” 我有一个 VS 2010 解决方案,里面有一个安装项目,当使用 VS 2010 构建解决方案时,会创建一个 msi 文件。现在我们只有 VS 2013,我无法更改/迁移安装项目。我应该怎么做才能创建 msi 文件?【参考方案2】:

从 Visual Studio 2012 开始,Microsoft 不再提供内置部署包。如果你想使用这个包,你需要使用VS2010。

2013 年你有几个选择:

InstallShield WiX 自己动手

在我的项目中,我从头开始创建自己的安装程序,由于我不使用 Windows Installer,因此它的优势是速度非常快,即使在旧机器上也是如此。

【讨论】:

您@ming-slogar 是否有任何带有此类安装程序的示例应用程序您想与我们分享? @Highmastdon:我基本上只是用本机 C++ 创建了一个安装程序引导程序(配置为能够在不预安装 C++ 运行时库的情况下运行),它检查已安装的 .NET 并启动了 WPF GUI安装程序。 WPF 安装程序允许用户选择一堆选项,然后复制文件并写入注册表项。我没有“示例”应用程序 - 我在我正在处理的项目中使用安装程序,但如果您需要,我可以尝试提取一个示例。 我真的很想看一个完整的例子。介意分享吗?不是代码本身,而是概念和您的经验?就像你如何将它嵌入到要安装的项目中,你如何自动化常见的事情(复制文件列表、规则:覆盖/不覆盖等)。另外,我正在使用 NSIS atm,但我厌倦了它的脚本语言、丑陋的 现代 UI 和非常缓慢的设计(它仍处于 xp 石器时代)。 @Sinatr 为了嵌入程序集,我大量使用了资源文件——包括 C++ 和 C#。为了复制文件,我实际上很懒惰并且手写了每个文件操作(例如使用File.WriteAllBytesFile.WriteAllText,具体取决于文件类型)。我没有处理覆盖现有文件 - 我的所有程序集都以我的应用程序名称为前缀(例如 AppName.Controls.dll、AppName.Images.dll),因此重复文件的可能性非常小。如果你想处理每一个可能的场景,你将不得不做 Windows Installer 所做的事情 - 这有点违背了自定义的目的。 @Kiquenet 我在这里上传了自定义安装程序的代码:drive.google.com/…。由于缺少依赖项(我从实时项目中提取),它不会构建,但您至少可以看到我是如何创建安装程序的。【参考方案3】:

Visual Studio 2013 现在支持安装项目。 Microsoft 已经发布了一个 Visual Studio 扩展来生成设置项目。

Visual Studio Installer Projects Extension

【讨论】:

嗨@Hamid,在完成窗口窗体MSI设置的安装后,我的原始文件(设计和编码)也显示在安装位置。我已经使用 Visual Studio 2010 开发了这个应用程序。安装程序创建成功,但是在安装 MSI 之后,这个问题正在发生。请帮我。提前致谢。 试图理解你的问题。您使用 Visual Studio 2010 创建了一个安装项目,但它不适用于 Visual Studio 2013?【参考方案4】:

Microsoft 建议使用"InstallShield Limited Edition for Visual Studio" 来替代已停产的“部署和设置项目”——但它不是很好,没有其他人建议使用它。但是对于简单的设置,如果在商业第三方产品上中继没有问题,您可以使用它。

另一种方法是使用Windows Installer XML (WiX),但您必须手动执行许多自行完成安装项目的事情。

【讨论】:

我完全同意@Kiquenet - 你可以试试wix.tramontana.co.hu的教程 我在 VS 2010 中安装了 2015LE,我可以在 VS 2010 中创建一个 IS 设置项目。现在如何在 Jenkins 中调用这个项目? Jenkins 的 InstallShield 插件询问 ISCmdBld.exe 的路径,我在 2015LE 中找不到。【参考方案5】:

微软还发布了Microsoft Visual Studio 2015 Installer Projects Extension 这是与 2013 版本相同的扩展,但适用于 Visual Studio 2015

【讨论】:

【参考方案6】:

除了 Install Shield 和 WiX,还有 Inno Setup。虽然我自己没有尝试过,但我听说过它的好消息。

【讨论】:

【参考方案7】:

我会告诉你,我是如何解决几乎类似的问题的。我使用 VS 2013 开发了一个应用程序并尝试创建向导,但它失败了。后来我安装了高级VS并尝试并失败了。

最后我使用了“ClickOnce”,效果很好。

所以我也相信在这里,“CLICKONCE”会帮助你。

【讨论】:

以上是关于在 Visual Studio 2013 中创建应用程序设置的主要内容,如果未能解决你的问题,请参考以下文章

使用 Visual Studio 2013 在 C# 中创建 asmx Web 服务

如何在 Visual Studio 2013 中创建多项目模板?

无法在 Visual Studio 2013 中创建新的 Web 项目

是否可以在 Visual Studio 数据库项目中创建计算列?

如何在visual studio 2013中设置角度2?

如何在 Visual Studio 2010 Ultimate 中创建 C++ 项目