Visual Studio 将项目发布到一个简单的安装程序中
Posted
技术标签:
【中文标题】Visual Studio 将项目发布到一个简单的安装程序中【英文标题】:Visual Studio Publish Project Into One Simple Installer 【发布时间】:2018-06-04 19:23:46 【问题描述】:我有一个相当大的项目,其中包含多个类、500 多个图像和 20 多个与该项目相关的文本文件。
我一直通过右键单击project->properties
并单击发布选项卡来发布我的项目。我已经将文本文件和图像包含为resources
。
问题是每当我安装一个应用程序时,通常它是一个简单的安装程序,即你下载一个安装程序(一个文件,如 installer.exe),运行这个文件,然后引导你完成设置,比如安装在哪里它到,等等。然后安装应用程序,就是这样。
好吧,在发布我的应用程序时,我指定了一个输出目录,剩下的就是这些文件:
应用程序文件MyProjectName.application
(清单?)
setup.exe
如果我运行setup.exe
,我可以安装该应用程序并毫无问题地运行它。但是,它不仅不允许我选择安装它的位置,而且我必须将所有 3 个文件都发送给用户。我试图只将setup.exe
发送给朋友,但它说他们缺少所需的文件(我假设这是application files
和.application
的用途)。
我将如何将这些全部整合到一个安装程序中,该安装程序更符合您安装企业应用程序的方式(考虑安装 chrome、eclipse、photoshop 等)?
我很高兴能够拥有一个作为安装程序的文件,并且能够让用户下载它。
谢谢
【问题讨论】:
看看WiX。它有一点学习曲线,但擅长创建可以安装整个应用程序的单个 .exe。 这是 Visual Studio 的插件吗?我无法从他们的网站上一眼看出 有一个名为 WaX 的插件可帮助您将文件添加到安装程序,但您仍需要先熟悉 Wix 的工作原理。 谢谢,我去看看。 在我的回答被否决后稍微详细说明了。 【参考方案1】:古人:如果下面是
Troubleshooting Setup and Deployment Projects Why use Windows Installer XML (WiX) over VDPROJ?TL;DR
(太长,没看懂),请略过这两个链接:
更新:2018 年 9 月 - 由于这个“答案”最近被否决,让我尝试添加更多链接,看看是否意图 答案可以更清楚。不要过于戏剧化,但是:
As deployment specialists we have to warn people when they commit to using a tool that is bound to fall apart for them down the line when more advanced deployment requirements invariably surface
。安装程序项目多次被pulled back and then re-introduced in Visual Studio。总是基于看到的问题 使用这些项目类型(只是较大的):
1)
不支持 MSBuild(我没有进行过广泛的测试,但其他人没有进行广泛测试),2)
仅在系统上下文中运行的延迟模式自定义操作(不可插入在 GUI 中),3)
总体控制非常有限(总是宣传快捷方式,无法配置某些东西等...),4)
不支持适当的服务安装 - 需要自定义操作,5)
捆绑的可用先决条件很少,6)
基本的 GUI,灵活性很小,7)
似乎无法定义 MSI 功能(如在功能和组件中)、8)
与32 / 64 bitness issues for custom actions 的问题等...有关此项目类型及其问题的旧 MSDN 页面:Troubleshooting Setup and Deployment Projects。
MSI 专家 Chris Painter 和其他人:
Are Visual Studio Setup projects suitable for complex setups? Why use Windows Installer XML (WiX) over VDPROJ?(推荐)在我看来,该项目类型仅适用于简单的.NET 应用程序。任何口径的复杂性,你都会遇到麻烦。
SQL Scripts
、IIS
、正确的COM / COM+
、Users & Groups
、Shares
、Firewall Rules
、Custom GUI
等......商业工具和 WiX 对这些东西有高级支持。编译后的 MSI 文件的内部结构也不符合标准(使用自注册、服务的自定义操作等)。我经常遇到该工具也因“某些未知原因”而停止工作。突然编译不出来了。 Concrete Example(有修复)。替代方案:
Simple List View of Deployment ToolsWiX Quick-Start Hints(如果该工具需要免费)
How to create windows installer (各种部署工具的链接,MSI优势总结和 一些趋势部署技术的简要描述)
The open source WiX toolkit 具有一个名为
Burn
创建这样的setup.exe
启动器/下载器 /bootstrappers - 用于按顺序运行多个安装和/ 或安装先决条件(一个非常常见的任务 - Visual Studio 项目 仅支持一些先决条件)。使用此刻录功能需要编写 WiX XML 标记代码。 商业工具Installshield 和Advanced Installer 提供 GUI 功能来构建此类
setup.exe
文件。
Visual Studio 安装程序 非常有限,我从不使用它。 WiX(链接到试图为 WiX 速成课程提供一些链接的答案)是一个成熟的开源部署解决方案。您需要一段时间才能掌握,但它非常好且灵活。 Installshield 或 Advanced Installer 等商业解决方案可让您更快、更轻松地提供设置,但它们可能非常昂贵。
鉴于 Visual Studio 安装程序项目(和错误)的局限性,我相信正确的解决方案是使用不同的工具: What installation product to use? InstallShield, WiX, Wise, Advanced Installer, etc。如果你需要任何先进的东西,否则你会很挣扎。使用更高级的工具,至少可以做您需要的事情,即使有时可能会涉及更多。
请告诉我您想了解的有关此类流程的信息,我会尽力提供帮助。我不确定您提供的软件是什么,目标用户群是什么,您的预算是多少等... Windows Installer 非常适合 a number of corporate benefits,但存在其他部署技术(请参阅上面对各种工具的描述使用)。
【讨论】:
确实,当您开始使用Visual Studio Installer Project Extension
时,您正在为后来的自我进化问题埋下过多的根本原因。最突出的影响是您的设置几乎总是随着时间的推移停止工作,您需要各种解决方法才能使其再次工作。这适用于复杂的项目/解决方案。恕我直言,此工具可用于快速设置简单项目。因为它设置得非常快。但这是我能看到的唯一优势! ;-)
是的,快速设置应该更容易。 WiX 工具包中的Dark.exe
可以将现有的 MSI 文件反编译为 WiX 标记。需要一些清理,但转换效果很好。高级安装程序 - 我认为 Installshield 也可以 - 也可以导入 VS 安装程序项目。遇到困难时可以帮助自己的一些方法。以上是关于Visual Studio 将项目发布到一个简单的安装程序中的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Visual Studio Express 2013 将 C# 接口实现/合并到一个简单的 C++ 程序中
将引导主题超级英雄添加到 Visual Studio 2017 C# mvc 项目中
将crm 4插件项目从visual studio 2005升级到visual studio 2010
如何使用“保存到..”对话框将字符串从 EditControl 写入 Visual Studio 2008 中的文本文件?