(.NET Core を使用) SDK ) .NET Framework 用にビルドする最も簡単な方法 macOS で実行する場合の TFM または Linux .NET Core CLI を使用することは、Microsoft の .NET Framework Targeting Pack Nuget パッケージを利用することです。 (現在プレビュー中 ):
これらのパッケージを使用すると、少なくとも 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>
注:PrivateAssets
属性は、どの依存アセットが消費されるかを制御しますが、親プロジェクトには流れません。ドキュメントを参照してください。
更新
これは、.NET 5 SDK を使用する必要がなくなりました。 (例:5.0.100 )、これで PackageReference
が自動的に追加されます ReferenceAssemblies に .NET Framework 用 .
通常の Mac で bash 経由でビルドするには、最小限の手順は次のようになります:
- Mono 6.0 をインストールします (VS Mac との相互運用には 5.2 をお勧めします。それは気にしません。Mono 6.0 と Dotnet コアとの相互運用の方が優れています)
- dotnet SDK 2.2 をインストールします (必ずしもそうである必要はありませんが、私には問題ありません)
- これを Directory.build.props ファイルに入れます (だれかが持っている場合は、改善を検討してください)
<Project> <PropertyGroup> <IsOSX Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::OSX)))'== 'true'">true</IsOSX> </PropertyGroup> <PropertyGroup Condition=" '$(IsOSX)' == 'true' "> <FrameworkPathOverride>/Library/Frameworks/Mono.framework/Versions/Current/Commands/../lib/mono/4.6.1-api</FrameworkPathOverride> </PropertyGroup> </Project>
- バッシュ:
dotnet build SolutionFileName.sln
動作するようになりました - Rider 2019.1 以降をインストール
- Rider:動作するはずです (ビルド ツール セクションで msbuild 16.0 を自動検出する必要があります)