我有一个 dotnet SDK .sln
(和一个 build.proj
)与 <TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>
.它使用 Visual Studio 和 dotnet build
在 Windows 上构建, 但我也希望它能 build 尽可能多的其他地方。我需要在我的 README.md 中放入什么和/或我可以在项目文件中放入什么以使其在 Rider 上构建和/或在 Mac 上从 bash 构建?
最佳答案
(使用 .NET Core SDK)构建 .NET Framework 的最简单方法 TFM使用 .NET Core CLI 在 macOS 或 Linux 上运行时, 是利用 .NET Framework Targeting Pack Nuget Packages来自 Microsoft(目前处于预览阶段):
These packages enable building .NET Framework projects on any machine with at least MSBuild or the .NET Core SDK installed.
The following scenarios and benefits are enabled for .NET Framework projects:
- Build without requiring admin operations to install pre-requisites such as Visual Studio or .NET Framework targeting packs.
- Build libraries on any operating system supported by the .NET Core SDK.
- Build Mono-based projects.
您可以包括 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>
注意:PrivateAssets
属性控制哪些依赖 Assets 将被消耗但不会流向父项目。参见 the docs .
更新
这不再需要使用 .NET 5 SDK(例如 5.0.100),它现在会自动将 PackageReference
添加到.NET Framework 的ReferenceAssemblies。
关于linux - 在 MacOS 上构建需要 net461 的 dotnet SDK 项目的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57382030/