【问题标题】:How to use Custom Action of Setup Project (vdproj) with .NET Core如何在 .NET Core 中使用安装项目 (vdproj) 的自定义操作
【发布时间】:2021-03-08 13:33:28
【问题描述】:
我想为我用 .NET Core 3.1 编写的自托管服务创建一个安装程序。我正在使用Visual Studio 2019,所以我必须安装VisualStudioClient.MicrosoftVisualStudio2017InstallerProjects,这让我可以创建Setup Project。
所以,现在一切正常,除了在安装过程中我无法运行任何代码!在标准 .NET Framework 中,有 Installer 类使我能够注入一些功能,例如“注册并启动服务”。但是 .NET Core 没有这样的东西!
那么我如何在安装完成后运行额外的 C# 代码呢?
【问题讨论】:
标签:
.net-core
visual-studio-setup-proje
【解决方案1】:
事实证明,Installer class 不再受支持,并且可能不会在可预见的将来。
解决方法是将服务 exe 本身作为自定义代码的宿主,运行参数。
步骤:
- 在解决方案中,您的 .Net Core 服务所在的位置添加“安装项目”项目。 (它必须是相同的解决方案)
- 转到
File System -> Application Folder 并添加PublishItemsOutputGroup
- 转到自定义操作视图并添加自定义操作
PublishItemsOutputGroup 到Install 并选择您的exe 名称。 (例如应该写成(name) PublishItemsOutputGroup from MyApiService (Active))
- 将
arguments 设置为/my_Install
- 在服务中创建
Main 并添加如下内容:
if (args.Length == 1)
{
File.AppendAllText("test_install_ca.txt", args[0]);
return;
}
- 一旦你运行它,你会在
System32目录中找到test_install_ca.txt,内容为/my_Install