GNU/Linux >> Belajar Linux >  >> Linux

Cara termudah untuk membangun proyek dotnet SDK yang membutuhkan net461 di MacOS

(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)

Linux
  1. Apa cara termudah untuk SSH menggunakan Python?

  2. NuGet untuk .NET Core di Linux

  3. Bangun paket NuGet di Linux yang menargetkan .NET Framework

  1. Tingkatkan .Net SDK di Debian 11 - Panduan langkah demi langkah?

  2. Apakah ada cara untuk mengganti nama proyek Cargo?

  3. Cara menginstal dotnet SDK di Ubuntu 16.04 LTS

  1. Cara baru untuk membangun UI lintas platform untuk perangkat ARM Linux

  2. Jenkins Build:Mengatur Proyek Gaya Bebas di Jenkins

  3. Cara membangun &menginstal GLFW 3 dan menggunakannya dalam proyek Linux