.net core 如何将安装项目(vdproj)的自定义操作与.NET Core一起使用
我想为用.NETCore3.1编写的自托管服务创建一个安装程序。我使用的是.net core 如何将安装项目(vdproj)的自定义操作与.NET Core一起使用,.net-core,visual-studio-setup-proje,.net Core,Visual Studio Setup Proje,我想为用.NETCore3.1编写的自托管服务创建一个安装程序。我使用的是Visual Studio 2019,因此我必须安装VisualStudioClient.MicrosoftVisualStudio2017InstallerProjects,这允许我创建安装项目 所以,现在一切正常,除了在安装过程中我不能运行任何代码!在标准的.NET框架中,有一个安装程序类,它使我能够插入一些函数,比如“注册并启动服务”。但是.NETCore没有这样的功能 那么,在安装完成后,如何运行额外的C#代码呢?
Visual Studio 2019
,因此我必须安装VisualStudioClient.MicrosoftVisualStudio2017InstallerProjects
,这允许我创建安装项目
所以,现在一切正常,除了在安装过程中我不能运行任何代码!在标准的.NET框架中,有一个安装程序类,它使我能够插入一些函数,比如“注册并启动服务”。但是.NETCore没有这样的功能
那么,在安装完成后,如何运行额外的C#代码呢?事实证明,安装程序类已不再受支持,而且在可预见的将来可能也不再受支持
解决方法是将服务exe本身作为自定义代码、运行be参数的主机
步骤:
在解决方案中,在.Net核心服务所在的位置添加“安装项目”项目。(必须是相同的解决方案)
转到文件系统
->应用程序文件夹
并添加PublishItemsOutputGroup
转到“自定义操作”视图,选择exe名称,将自定义操作PublishItemsOutputGroup
添加到Install
。(例如,它应该说(name)PublishItemsOutputGroup from MyApiService(Active)
)
将参数设置为/my\u Install
在服务中形成Main
,并添加如下内容:
一旦运行它,您将在System32
dir中找到test\u install\u ca.txt,内容为/my\u install
if (args.Length == 1)
{
File.AppendAllText("test_install_ca.txt", args[0]);
return;
}