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

4
我有一个庞大的项目,里面包含多个类、500多张图片和20多个与该项目相关的文本文件。
我一直通过右键单击“项目->属性”,然后单击发布选项卡来发布我的项目。我已经将文本文件和图像作为资源包含在内了。
问题在于,每当我安装一个应用程序时,通常都是一个简单的安装程序,即您下载一个安装程序(一个文件,例如installer.exe),运行此文件,然后按照设置向导进行设置,例如安装到哪里等。然后应用程序就被安装了,这就是全部了。
好吧,当我发布我的应用程序时,我指定了一个输出目录,然后我得到了这些文件:
- 应用程序文件 - MyProjectName.application(清单?) - setup.exe 如果我运行setup.exe,我可以安装应用程序并且没有任何问题。但是,它不仅不让我选择安装位置,而且我还必须将这3个文件全部发送给用户。我试图将只有setup.exe发送给朋友,但是它说他们缺少所需的文件(我假设这就是“应用程序文件”和“.application”所用的)。
我该如何将它们打包成一个安装程序,更接近于安装企业应用程序的方式(想象一下安装chrome、eclipse、photoshop等)?
我希望能够有一个文件,即安装程序,并能够让用户下载。
谢谢。

1
看一下WiX。它有一定的学习曲线,但是在创建一个可以安装整个应用程序的单个.exe方面非常出色。 - burnttoast11
这是 Visual Studio 的插件吗?我从他们的网站上快速浏览无法确定。 - follmer
有一个名为 WaX 的插件可以帮助您将文件添加到安装程序中,但您仍需要先熟悉 Wix 的工作原理。 - burnttoast11
谢谢,我会去查看的。 - follmer
我对我的回答进行了详细的阐述,因为它被踩了。 - Stein Åsmul
1个回答

7

古人们:如果以下内容过于冗长,您可以浏览以下两个链接:



更新2018年9月 - 最近这个“回答”遭到了负面评价,所以我想添加更多的链接来看是否可以更清楚地表达答案的意图。不想过于夸张,但是:
作为部署专家,我们必须在人们承诺使用工具时警告他们,当更高级的部署需求不可避免地出现时,这些工具注定会崩溃。
安装程序项目已经多次从 Visual Studio 中删除,然后重新引入。这总是基于这些项目类型(只是较大的项目)所见到的问题:
1) 不支持 MSBuild(由他人测试,而非作者本人),2) 只能以系统上下文中运行延迟模式自定义操作(无法插入 GUI),3) 总体控制限制非常高(始终有广告快捷方式,无法配置某些东西等等...),4) 不支持适当的服务安装-需要使用自定义操作,5) 提供的先决条件很少,6) 简陋的 GUI 且缺乏灵活性,7) 似乎无法定义 MSI 特性(如特性和组件),8) 与自定义操作的32位/64位问题有关等等...
该项目类型和其问题的旧 MSDN 页面:故障排除设置和部署项目。
MSI 专家 Chris Painter 和其他人:
  • Visual Studio 设置项目是否适用于复杂设置?
  • 为什么要使用 Windows Installer XML(WiX)而不是 VDPROJ? (推荐)
  • 在我看来,该项目类型只能用于简单的 .NET 应用程序。任何复杂性都会让你陷入麻烦。SQL 脚本、IIS、适当的 COM / COM+、用户和组、共享、防火墙规则、自定义 GUI 等等...商业工具和 WiX 对这些东西都有高级支持。编译后的 MSI 文件内部也是次标准的(使用自注册、服务的自定义操作等等)。我经常经历到该工具因“某种未知原因”停止工作。突然它就无法编译了。具体示例(带修复)。 替代方案
  • 部署工具的简单列表视图
  • WiX 快速入门提示(如果需要免费工具)

  • 如何创建 Windows 安装程序 (链接到各种部署工具,总结 MSI 的优势和一些流行的部署技术的简短描述)

  • 开源 WiX 工具包 具有一个名为 Burn 的组件,用于创建这样的 setup.exe 启动器/下载器/引导程序-用于按顺序运行多个安装和/或安装先决条件(这是非常常见的任务-Visual Studio 项目仅支持少数先决条件)。
    编写 WiX XML 标记代码是使用此 Burn 功能所必需的。商业工具 InstallshieldAdvanced Installer 提供了构建这些 setup.exe Visual Studio安装程序非常有限,我从不使用。 WiX(链接到一个试图为WiX入门提供一些链接的答案)是一个完整的、开源的部署解决方案。你需要一段时间来掌握它,但它非常好而且灵活。商业解决方案如InstallshieldAdvanced Installer将允许您更快、更容易地交付设置,但它们可能非常昂贵。

    考虑到Visual Studio安装程序项目的限制(和错误),我确信使用不同的工具是正确的解决方案: 使用哪种安装产品? InstallShield、WiX、Wise、Advanced Installer等。如果你需要任何高级功能,否则你将会遇到麻烦。使用更高级的工具,至少可以做到你需要的事情,即使有时可能会更加复杂。

    告诉我你想了解什么关于这个过程的信息,我会尽力帮助。我不确定你正在交付哪个软件,目标用户群是什么,预算是多少等等... Windows Installer 对于许多企业优势非常理想,但其他部署技术也存在(请参见上面各种工具的描述)。


    当开始使用“Visual Studio Installer Project Extension”时,确实会为以后自我演进的问题种下大量根源。最显著的影响是,随着时间的推移,您的设置几乎总是停止工作,您需要各种解决方法才能使其再次工作。这适用于复杂的项目/解决方案。在我看来,这个工具可以用于快速设置简单的项目。因为它设置得非常快。但这是我能看到的它唯一的优点!;-) - Nicolas
    是的,应该更容易进行快速设置。WiX工具包中的Dark.exe可以将现有的MSI文件反编译为WiX标记。需要一些清理,但很好用于转换。Advanced Installer - 我认为Installshield也是 - 也可以导入VS安装程序项目。当卡住时,以下一些路径可能会有所帮助。 - Stein Åsmul

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