多目标 .NET Standard 2.0 缺少一些框架库

Multitargeting .NET Standard 2.0 missing some framework libraries

有一个工作 ASP.NET 核心使用我编写的 .NET 标准 DLL。我现在想在我的 DLL 中使用 TransactionScope,但遇到了这个问题:

.NET Standard 和 .NET Core 2.0 都可以识别 System.Transactions,但 .NET Framework 4.6.1 会报错并且无法使用 MSBuild 进行编译。 Visual Studio 2017 年提供以下有用信息:

我似乎无法找到一种方法来强制项目从我系统的 Framework/Framework64 文件夹中识别 System.Transactions.dll。

是的,我可以使用 dotnet build 编译 .NET Core 版本,但这不是我想要的...我也希望能够针对 .NET 4.6.1 进行编译。

您需要添加一个以目标框架为条件的框架引用。

将此添加到您的 csproj 文件中:

<ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'">
  <Reference Include="System.Transactions" />
</ItemGroup>