首页 文章

无法找到net471 System.Configuration.Install命名空间

提问于
浏览
1

我正在使用Visual Studio Code和C#上的dotnet sdk开发.NET Core应用程序 . 我在csproj中有两个目标框架:

<TargetFrameworks>netcoreapp2.0;net471</TargetFrameworks>

我希望在目标是netcoreapp2.0时编译控制台应用程序,在目标是net471时编译Windows服务 . 为此,我在与服务相关的代码中添加了预处理器符号NET471 .

我发现要创建Windows服务并能够使用InstallUtil.exe,必须创建一个继承自ServiceBase的类,以及从Installer继承的其他类 . 此Installer类位于System.Configuration.Install命名空间中 .

问题是,当我想为net471构建时,如下所示:

dotnet build -f net471

它失败了这个错误:

MyServiceInstaller.cs(4,28):错误CS0234:命名空间“System.Configuration”中不存在类型或命名空间名称“Install”(您是否缺少程序集引用?)[C:\ Users \ jjamardo \ service -test \ service-test.csproj] MyServiceInstaller.cs(9,39):错误CS0246:找不到类型或命名空间名称'Installer'(您是否缺少using指令或程序集引用?)[C:\ Users \ jjamardo \ service-test \ service-test.csproj] 0警告2错误

我谷歌很多,但我找不到任何有用的东西 .

尝试了很多我设法编译的东西但是使用net461作为目标框架 .

dotnet build -f net461

这可能有效,但我不想降级到4.6.1 . 我尝试在Visual Studio 2017中创建.NET Framework 4.7.1并且应用程序正常工作,因此我假设命名空间仍然存在 . 我不明白为什么使用dotnet编译目标4.6.1但是使用4.7.1失败 .

所以,问题是:如何使用dotnet创建Windows服务,net471作为目标框架 . 有没有其他方法可以在不从ServiceBase和Installer继承的情况下制作Windows服务?

谢谢!

2 回答

  • 0

    虽然不是一个好的答案,但.NET Core不支持 System.Configuration.Install 命名空间 .

  • 0

    对于net471,您是否添加到您的项目?

    <ItemGroup>
        <Reference Include="System.Configuration.Install" />
    </ItemGroup>
    

相关问题