(menggunakan .NET Core SDK ) Cara paling sederhana untuk membangun .NET Framework TFM saat berjalan di salah satu macOS atau Linux menggunakan .NET Core CLI, adalah memanfaatkan .NET Framework Targeting Pack Nuget Packages dari Microsoft (sedang dalam pratinjau ):
Paket-paket ini memungkinkan pembuatan proyek .NET Framework di mesin apa pun dengan setidaknya MSBuild atau .NET Core SDK terpasang.
Skenario dan manfaat berikut diaktifkan untuk proyek .NET Framework:
- Bangun tanpa memerlukan operasi admin untuk menginstal prasyarat seperti paket penargetan Visual Studio atau .NET Framework.
- Bangun perpustakaan di sistem operasi apa pun yang didukung oleh .NET Core SDK.
- Bangun proyek berbasis Mono.
Anda dapat menyertakan metapackage Microsoft.NETFramework.ReferenceAssemblies; atau hanya menggunakan paket khusus, yang dalam kasus Anda adalah Microsoft.NETFramework.ReferenceAssemblies.net461.
Tambahkan paket ke *.csproj
atau Directory.Build.props
Anda :
<Project>
<ItemGroup>
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All" />
</ItemGroup>
</Project>
Catatan:PrivateAssets
atribut mengontrol aset dependensi mana yang akan digunakan tetapi tidak akan mengalir ke project induk. Lihat dokumennya.
Perbarui
Ini tidak lagi diperlukan menggunakan .NET 5 SDK (misalnya 5.0.100 ), yang sekarang akan menambahkan PackageReference
secara otomatis ke ReferenceAssemblies untuk .NET Framework .
Untuk membangun melalui bash pada vanilla Mac, langkah-langkah minimalnya adalah:
- Instal Mono 6.0 (5.2 disarankan untuk interop VS Mac, saya tidak peduli tentang itu, dan interop Mono 6.0 dengan inti Dotnet lebih baik)
- Instal dotnet SDK 2.2 (tidak harus persis seperti itu, tetapi berfungsi untuk saya)
- Letakkan ini di file Directory.build.props (terbuka untuk perbaikan jika ada yang punya)
<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>
- Bash:
dotnet build SolutionFileName.sln
sekarang seharusnya berfungsi - Instal Rider 2019.1 atau lebih baru
- Rider:Seharusnya Hanya Berfungsi (harus mendeteksi secara otomatis msbuild 16.0 di bagian alat build)