GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Einfachste Methode zum Erstellen eines dotnet SDK-Projekts, das net461 auf MacOS erfordert

(unter Verwendung von .NET Core SDK ) Die einfachste Art, für ein .NET Framework zu bauen TFM, wenn es auf einem der beiden macOS ausgeführt wird oder Linux mit der .NET Core-CLI, besteht darin, die Nuget-Pakete des .NET Framework Targeting Pack von Microsoft zu verwenden (aktuell in Vorschau ):

Diese Pakete ermöglichen das Erstellen von .NET Framework-Projekten auf jedem Computer, auf dem mindestens MSBuild oder das .NET Core SDK installiert ist.

Die folgenden Szenarien und Vorteile sind für .NET Framework-Projekte aktiviert:

  • Erstellen Sie, ohne dass Administratorvorgänge erforderlich sind, um Voraussetzungen wie Visual Studio oder .NET Framework-Targeting-Pakete zu installieren.
  • Erstellen Sie Bibliotheken auf jedem Betriebssystem, das vom .NET Core SDK unterstützt wird.
  • Mono-basierte Projekte erstellen.

Sie können entweder das Metapaket Microsoft.NETFramework.ReferenceAssemblies einschließen oder nur das spezifische Paket verwenden, das in Ihrem Fall Microsoft.NETFramework.ReferenceAssemblies.net461.

ist

Fügen Sie das Paket zu *.csproj hinzu oder Ihre Directory.Build.props :

<Project>
  <ItemGroup>
    <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All" />
  </ItemGroup>
</Project>

Hinweis:Die PrivateAssets -Attribut steuert, welche Abhängigkeitsressourcen verbraucht werden, aber nicht in das übergeordnete Projekt fließen. Siehe die Dokumentation.

Aktualisieren

Mit dem .NET 5 SDK ist dies nicht mehr erforderlich (zB 5.0.100 ), der nun automatisch die PackageReference hinzufügt zu den ReferenceAssemblies für .NET Framework .


Um über Bash auf einem Vanilla-Mac zu bauen, scheinen die minimalen Schritte zu sein:

  • Installieren Sie Mono 6.0 (5.2 wird für die VS Mac-Interop empfohlen, das ist mir egal, und die Interop von Mono 6.0 mit dem Dotnet-Core ist besser)
  • Dotnet SDK 2.2 installieren (muss nicht genau das sein, funktioniert aber bei mir)
  • Fügen Sie dies in eine Directory.build.props-Datei ein (offen für Verbesserungen, falls jemand welche hat)
<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 sollte jetzt funktionieren
  • Installieren Sie Rider 2019.1 oder höher
  • Rider:sollte einfach funktionieren (es sollte msbuild 16.0 im Abschnitt mit den Build-Tools automatisch erkennen)

Linux
  1. .Net SDK auf Debian 11 upgraden – Schritt-für-Schritt-Anleitung ?

  2. Was ist der einfachste Weg zu SSH mit Python?

  3. Wie man GLFW 3 erstellt und installiert und in einem Linux-Projekt verwendet

  4. NuGet für .NET Core unter Linux

  5. Erstellen Sie ein NuGet-Paket unter Linux, das auf .NET Framework abzielt

So installieren Sie Dotnet in AlmaLinux 8

3 Möglichkeiten zur Installation von .NET 6 (dotnet) Core auf Debian 11 Bullseye

Testen von .NET Core unter Linux mit nur einem Tarball (ohne apt-get)

So installieren Sie (.NET Core) Dotnet Core auf Linux-Distributionen

Build Tools-Revision 23.0.1 konnte nicht gefunden werden

So kompilieren Sie die .NET Core-App für Linux auf einem Windows-Computer