0

试图弄清楚System.Diagnostics.EventLog在多目标项目中使用。目标是:

  • .NET 5
  • .NET 框架 4.8

我的解决方案中有 3 个项目,其他 2 个项目一切正常。引起问题的一个是System.Diagnostics.EventLog.NET 5的引用,因为它需要使用EventLog. 在.NET 框架 4.8上,System.Diagnostics.EventLog命名空间使用System.dll.

我正在寻找一种仅在.NET 5项目中而不是在4.8项目中包含对该库的引用的方法。

当我添加对项目的引用时,似乎它将它添加到两个目标中。有没有办法将它添加到.NET 5而不是.NET framework 4.8

4

1 回答 1

0

经过多次尝试、寻找和(几乎)破坏,我终于意识到这真的很简单:

编辑项目文件并在仅.NET 5目标所需的引用上提供条件编译参数:

<ItemGroup Condition=" '$(TargetFramework)' == 'net5.0-windows' ">
  <Reference Include="System.Diagnostics.EventLog">
    <HintPath>C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0\System.Diagnostics.EventLog.dll</HintPath>
  </Reference>
</ItemGroup>

就是这样!

于 2021-05-17T17:46:48.890 回答