【问题标题】:Adding a reference for specific platform on multi-platform project在多平台项目中添加特定平台的引用
【发布时间】:2021-05-18 01:46:48
【问题描述】:

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

  • .NET 5
  • .NET Framework 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

【问题讨论】:

    标签: c# .net multitargeting


    【解决方案1】:

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

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

    就是这样!

    【讨论】:

      猜你喜欢
      • 2010-11-09
      • 2017-05-02
      • 2020-06-22
      • 2014-04-19
      • 1970-01-01
      • 1970-01-01
      • 2018-12-22
      • 2020-09-05
      相关资源
      最近更新 更多