如何在 .NET Core 中使用安装项目 (vdproj) 的自定义操作

问题描述

我想为我用 .NET Core 3.1 编写的自托管服务创建一个安装程序。我正在使用 Visual Studio 2019,所以我必须安装 VisualStudioClient.MicrosoftVisualStudio2017InstallerProjects,这允许我创建 Setup Project

所以,现在一切正常,只是我在安装过程中无法运行任何代码!在标准的 .NET Framework 中,有 Installer 类使我能够注入一些功能,例如“注册和启动服务”。但是 .NET Core 没有这样的东西!

那么如何在安装完成后运行额外的 C# 代码

解决方法

事实证明,Installer class 不再受支持,并且可能在可预见的未来也不会支持。

解决方法是将服务 exe 本身作为自定义代码的宿主,运行参数。

步骤:

  1. 在解决方案中,您的 .Net Core 服务所在的位置添加“设置项目”项目。 (它必须是相同的解决方案)
  2. 转到File System -> Application Folder 并添加PublishItemsOutputGroup
  3. 转到自定义操作视图并将自定义操作 PublishItemsOutputGroup 添加到 Install,并选择您的 exe 名称。 (例如,它应该说 (name) PublishItemsOutputGroup from MyApiService (Active)
  4. arguments 设置为 /my_Install
  5. 您可以在服务中形成 Main 并添加如下内容:
if (args.Length == 1)
{
       File.AppendAllText("test_install_ca.txt",args[0]);
       return;
}
  1. 运行后,您会在 test_install_ca.txt 目录中找到 System32,内容为 /my_Install

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...