首页 > 解决方案 > 将 Windows 服务项目更新到 .NET 5 System.Configuration.Installer,如何将其添加到我的项目中?

问题描述

现在 .NET 5 已经发布,我想我会考虑升级我们拥有的一些应用程序,其中一个我们有一个 Windows 服务。

似乎我们依赖的一些命名空间,其中之一是System.Configuration.Install.NET 5 中不存在开箱即用的。我假设它有一个技巧,比如添加对 Windows 窗体的支持<UseWindowsForms>true</UseWindowsForms>是通过 .我想我会在这里问。

有没有办法将该命名空间和其他相关位带入 .NET 5 项目?如果是这样,怎么做?

是的,我已将目标框架设置为net5.0-windows第一个。

标签: windows.net-5

解决方案


没有计划将其移植到 .NET Core。有一个关于这个的 Github 问题讨论源代码将于本月发布到 Microsoft/References ,但 PR 尚未合并。有些人已经反编译了这些类并从中创建了包,例如Core.System.Configuration.Install

很少有人会将该命名空间识别为用于“简化”Windows Installer 操作的类,更不用说使用它了。我想我上次使用它是 2004 年?2005 年?之后我使用了适当的安装程序生成器,最近又使用了声明性配置管理脚本,如 Powershell DSC 或 Puppet。

编写定义要安装的服务、计数器、事件日志的 PowershellDSC 脚本可能比尝试创建等效的 MSI 操作更容易。没关系部署到多台服务器。

另一种选择可能是等待一两个星期,直到源代码合并到 ReferenceSource 中,或者等到有人解决问题并将其打包。


推荐阅读