0

System.Diagnostics.EventLogマルチターゲットプロジェクトで使用することを理解しようとしています。ターゲットは次のとおりです。

  • .NET5
  • .NET フレームワーク 4.8

私のソリューションには 3 つのプロジェクトがあり、他の 2 つのプロジェクトではすべて正常に動作します。.NET 5を使用する必要があるため、問題を引き起こしているのは.NET 5System.Diagnostics.EventLogの参照です。.NET Framework 4.8では、名前空間は.EventLogSystem.Diagnostics.EventLogSystem.dll

このライブラリへの参照を.NET 5プロジェクトにのみ含め、4.8プロジェクトには含めない方法を探しています。

プロジェクトへの参照を追加すると、両方のターゲットに追加されるようです。.NET Framework 4.8 ではなく.NET 5に追加する方法はありますか?

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 に答える