Visual Studio将项目发布到一个简单的安装程序中

我有一个相当大的项目,有多个类,500多个图像,以及与该项目相关的20多个文本文件。

通过右键单击project->properties ,然后单击发布选项卡,我一直在发布我的项目。 我已将文本文件和图像作为resources包含在内。

问题是每当我安装一个应用程序时,通常它都是一个简单的安装程序,即你下载一个安装程序(一个文件,如installer.exe),运行这个文件,然后带你完成设置,比如安装到哪里,然后安装应用程序就是这样。

好吧,在发布我的应用程序时,我指定了一个输出目录,我留下了这些文件:

  • 应用文件
  • MyProjectName.application (清单?)
  • SETUP.EXE

如果我运行setup.exe ,我可以安装该应用程序并运行它没有任何问题。 但是,它不仅不让我选择安装位置,而且还必须将所有这3个文件发送给用户。 我试图只将setup.exe发送给朋友,它说他们缺少所需的文件(我假设是application files.application的用途)。

我如何将这些全部集成到一个安装程序中,一个更符合您安装企业应用程序的方式(想想安装chrome,eclipse,photoshop等)?

我很高兴能够拥有一个安装程序并且能够让用户下载的文件。

谢谢

更新20189月 – 由于这个“答案”最近被低估了,让我尝试添加一些链接,看看答案的意图是否可以更清楚。 不要过于戏剧化,但是:

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

安装程序项目已多次被撤回,然后在Visual Studio中重新引入 。 总是基于这些项目类型所遇到的问题(只是更大的问题):

1)没有MSBuild支持, 2)只有在系统上下文中运行的延迟模式自定义操作(不能在GUI中插入), 3)整体控制非常有限(总是公布的快捷方式,没有配置某些东西的能力等等), 4)不支持正确的服务安装 – 需要自定义操作, 5)捆绑的可用先决条件很少, 6)基本GUI没有灵活性, 7)似乎无法定义MSIfunction(如function和组件), 8) 自定义操作等32/64位数问题 …

此项目上的旧MSDN页面类型及其问题: 对安装和部署项目进行故障排除 。

MSI专家Chris Painter和其他人: Visual Studio安装项目是否适合复杂的设置?

在我看来,项目类型只适用于简单的.NET应用程序。 任何复杂的口径和你都有麻烦。 SQL ScriptsIIS ,正确的COM / COM+Users & GroupsSharesFirewall RulesCustom GUI等…商业工具和WiX已经为这些东西提供了高级支持。 已编译的MSI文件的内部也是不合标准的(使用自注册,服务的自定义操作等)。 我经常经历该工具也因“某些未知原因”而停止工作。 突然它不会编译。 具体示例 (带修复)。

替代方案

  • 部署工具的简单列表视图
  • WiX快速启动提示 (如果工具需要免费)

  • 如何创建Windows安装程序 (指向各种部署工具的链接,MSI优势摘要和趋势部署技术的一些简要说明)

开源WiX工具包具有一个名为Burn的组件来创建这样的setup.exe启动器/下载器/ bootstrappers – 用于按顺序运行多个安装和/或安装先决条件(一个非常常见的任务 – Visual Studio项目仅支持一些先决条件)。

编写WiX XML标记代码是使用此刻录function所必需的。 商业工具Installshield和Advanced Installer提供GUIfunction来构建此类setup.exe文件。


Visual Studio安装程序非常有限,我从不使用它。 WiX (链接到试图为WiX速成课程提供一些链接的答案)是一个完整的开源部署解决方案。 掌握你需要一段时间,但它非常好而且灵活。 诸如InstallshieldAdvanced Installer之类的商业解决方案将允许您更快速,更轻松地提供设置,但它们可能非常昂贵。

鉴于Visual Studio Installer项目(和bug)的局限性,我相信正确的解决方案是使用不同的工具:使用什么安装产品? InstallShield,WiX,Wise,Advanced Installer等 。 如果你需要任何先进的东西,那么你会挣扎。 使用更先进的工具,至少可以做到你需要的东西,即使它有时可能更多涉及。

让我知道你想知道关于这个过程的内容,我会尽力帮助你。 我不确定您提供的软件,目标用户组是什么,您有多少预算等等… Windows Installer非常适合许多公司利益 ,但存在其他部署技术(请参阅上面的各种部署说明)使用的工具)。