首页 > 解决方案 > 如何在 .NET Core 中使用安装项目 (vdproj) 的自定义操作

问题描述

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

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

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

标签: .net-corevisual-studio-setup-proje

解决方案


事实证明,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.txtSystem32目录中找到内容/my_Install

推荐阅读