在 MacOS 上构建需要 net461 的 dotnet SDK 项目的最简单方法

Rub*_*ink 6 linux macos .net-core rider dotnet-sdk

我有一个DOTNET SDK .sln(和build.proj)有<TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>。它使用 Visual Studio 和 构建在 Windows 上dotnet build,但我也希望它构建尽可能多的其他地方。我需要在我的 README.md 中放入什么和/或我可以在项目文件中放入什么以使其在 Mac 上的 Rider 和/或 bash 上构建?

Fla*_*ver 8

(使用.NET Core SDK)在使用.NET Core CLImacOSLinux上运行时为.NET Framework TFM构建的最简单方法是利用来自Microsoft.NET Framework Targeting Pack Nuget Packages当前处于预览状态) :

这些包支持在至少安装了 MSBuild 或 .NET Core SDK 的任何计算机上构建 .NET Framework 项目。

为 .NET Framework 项目启用了以下方案和优势:

  • 无需管理员操作即可生成安装先决条件(例如 Visual Studio 或 .NET Framework 目标包)。
  • 在 .NET Core SDK 支持的任何操作系统上构建库。
  • 构建基于 Mono 的项目。

您可以包含Microsoft.NETFramework.ReferenceAssemblies元包;或者只使用特定的包,在你的情况下是Microsoft.NETFramework.ReferenceAssemblies.net461

将包添加到*.csproj或您的Directory.Build.props

<Project>
  <ItemGroup>
    <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All" />
  </ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

注意:该PrivateAssets属性控制哪些依赖资产将被消耗但不会流向父项目。请参阅文档

更新

这是使用不再需要.NET 5 SDK(如5.0.100),现在将自动添加PackageReferenceReferenceAssemblies.NET框架