微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在多平台项目上添加特定平台的参考

如何解决在多平台项目上添加特定平台的参考

试图找出在多目标项目中使用 System.Diagnostics.EventLog。目标是:

  • .NET 5
  • .NET 框架 4.8

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

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

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

解决方法

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

编辑项目文件并在引用上提供条件编译参数,这仅适用于 .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>

就是这样!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。