一尘不染

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

c#

我有一个相当大的项目,其中包含多个类,500多个图像和与该项目相关联的20多个文本文件。

我一直在通过右键单击project->properties,然后单击“发布”选项卡来发布项目。我已经包含了文本文件和图像resources

问题是,每当我安装一个应用程序时,通常是一个简单的安装程序,即下载一个安装程序(一个文件,如installer.exe),然后运行该文件,然后带您完成安装过程,例如将其安装到何处,等。然后安装该应用程序,仅此而已。

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

  • 申请文件
  • MyProjectName.application (清单?)
  • 安装程序

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

我该如何将所有这些都捆绑到一个安装程序中,与您将如何安装企业应用程序(例如安装chrome,eclipse,photoshop等)更紧密地匹配?

我非常希望能够拥有一个安装程序文件,并且能够让用户下载该文件。

谢谢


阅读 338

收藏
2020-05-19

共1个答案

一尘不染

The Ancients :如果以下内容 TL;DR (太长,没有读过),请略过这两个链接:


更新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)
似乎无法定义MSI功能(如功能和组件),32/64
8)
问题自定义操作的位问题等。

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

MSI专家Chris Painter和其他人:

我认为项目类型仅适用于简单的.NET应用程序。任何口径的复杂性都会给您带来麻烦。SQL ScriptsIIS,适当的COM / COM+Users & GroupsSharesFirewall RulesCustom GUI,等…商业工具和维克斯对这些事情的高级支持。编译后的MSI文件的内部也是不合标准的(使用自注册,对服务的自定义操作等)。我经常会遇到该工具由于“某些未知原因”而停止工作的情况。突然,它将无法编译。具体示例(已修复)。

替代方案

开源WiX工具包具有一个名为
Burn 创建此类
setup.exe 启动器/下载器/引导程序的组件-用于依次运行多个安装和/或安装先决条件(一个非常常见的任务-Visual
Studio项目仅支持一些先决条件)。

要使用此刻录功能,必须编写WiX
XML标记代码。商业工具InstallshieldAdvanced
Installer
提供了用于构建此类 setup.exe
文件的GUI功能。


Visual Studio安装 是非常有限的,我从来没有使用它。
WiX
(指向尝试为WiX速成课程提供一些链接的答案的链接)是成熟的开放源代码部署解决方案。掌握它需要一些时间,但是它非常好且灵活。诸如
InstallshieldAdvanced Installer之
类的商业解决方案将使您可以更快,更轻松地交付设置,但它们的价格可能很高。

鉴于Visual Studio Installer项目的局限性(和错误),我相信正确的解决方案是使用其他工具:使用
哪种安装产品?InstallShield,WiX,Wise,Advanced
Installer等
。如果您根本不需要任何高级的东西,那么您将为否则而苦恼。使用更高级的工具,即使有时可能涉及更多的工作,至少也可以做您需要的事情。

让我知道您想知道的有关此过程的信息,我将尽力提供帮助。我不确定要提供什么软件,目标用户群是什么,预算多少,等等。。。Windows
Installer对于许多公司利益是非常可取的,但是还存在其他部署技术(请参见上面各种说明)使用工具)。

2020-05-19