Ich möchte die ASP.NET-Webanwendung unter Linux mit installiertem Mono bereitstellen.
Soweit ich weiß, ist Mono eine ähnliche Zielplattform wie .DNX 4.5.1 oder .DNX Core 5.0. Ich muss es also irgendwie zu den Zielplattformen in meinem Projekt hinzufügen, um das Projekt zu kompilieren und zu debuggen.
Überraschenderweise konnte ich keine Anweisungen finden. Ich erstelle ein neues ASP.NET 5/vNext-Projekt und sehe nur die Kompilierungsziele 4.5.1 und Core 5.0. Wie füge ich Mono zu dieser Liste hinzu?
Es gab einige Mono-Produkte/Mono für VS, die Mono in VS integrieren, aber jetzt gibt es keine.
In diesem Fall sollten Sie sich auf .NET Core 5 konzentrieren, da dies die ultimative Lösung sein wird.
Mono bietet zwar noch einige Unterstützung für ASP.NET-Projekte *, * aber es ist schwierig, Kompatibilität zu behaupten, da Sie Mono unter Linux zur Überprüfung bereitstellen müssen. Selbst in diesen Fällen sollte Ihr Projekt genau auf das von Ihnen in der Vergangenheit durchgeführte .NET Framework abzielen. Es gibt kein Mono-spezifisches Profil für das Targeting.
Aus Visual Studio und Ziel-Mono kompilieren
Als Auszug aus hier
Sie können unter Windows gegen Mono kompilieren, aus Visual Studio mit MonoHelper Addin (unter Verwendung von Xbuild).
Es gibt auch eine andere Lösung, die auf ein "Mono" .NET Framework-Profil von Visual Studio abzielt. Die folgenden Schritte kommen von hier und es ist für VS 2012 (es sollte jedoch für andere Versionen funktionieren).
Erstellen Sie zwei Registrierungsschlüssel:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0,Profile=Mono
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0,Profile=Mono
Erstellen Sie einen Link zum Mono-Verzeichnis im Microsoft References Assemblies-Verzeichnis (Möglicherweise müssen Sie Folgendes mit Administratorrechten ausführen)
cd "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Profile"
mklink /d Mono "C:\Program Files (x86)\Mono\lib\mono\4.5"
cd Mono
mkdir RedistList
cd RedistList
notepad FrameworkList.xml
Editiere FrameworkList.xml
Fügen Sie folgendes in FrameworkList.xml
ein
<?xml version="1.0" encoding="utf-8"?>
<FileList Redist="Mono-4.5" Name="Mono 4.5 Profile" RuntimeVersion="4.5" ToolsVersion="4.0" > </FileList>
Schauen Sie sich die pythonnet-Lösung und Projekte an, die auf mehrere CLR-Laufzeiten abzielen:
https://github.com/pythonnet/pythonnet/blob/master/pythonnet.sln