.net-core - 如何在 .NET Core 中使用安装项目 (vdproj) 的自定义操作
问题描述
我想为我用 .NET Core 3.1 编写的自托管服务创建一个安装程序。我正在使用Visual Studio 2019
,所以我必须安装VisualStudioClient.MicrosoftVisualStudio2017InstallerProjects
,这让我可以创建Setup Project
.
所以,现在一切正常,除了我在安装过程中无法运行任何代码!在标准的 .NET Framework 中,有Installer
一个类可以让我注入一些功能,比如“注册并启动服务”。但是 .NET Core 没有这样的东西!
那么如何在安装完成后运行额外的 C# 代码呢?
解决方案
事实证明,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; }
- 一旦你运行它,你会
test_install_ca.txt
在System32
目录中找到内容/my_Install
推荐阅读
- excel - 用户表单中的多个动态相互依赖的组合框
- python - “TypeError:'int' object is not subscriptable”尝试对字符串进行切片时
- kubernetes - 如何修复 Kubernetes Steps 和 Node Executor 中的 Connection Refused 错误?
- wordpress - 如何制作可排序的 acf_form()?
- javascript - 当值小于零时如何设置颜色区域使用 Apexcharts
- spring - 是否可以更改 SpringFox 隐式默认组?
- powerbi - power bi中的excel数据根据特定条件减去两个单元格
- javascript - 带有 JQuery 的 prestashop 中带有搜索栏的下拉菜单
- qt - 如何提取 QAbstractScrollArea 数据?
- json - 如何在 Excel 的下一列中填充 json 解析结果?