Je souhaite déployer une application Web ASP.NET sur Linux avec mono installé.
De ce que je sais, Mono est une plate-forme de ciblage similaire à .DNX 4.5.1 ou .DNX Core 5.0. Je dois donc l'ajouter aux plateformes de ciblage de mon projet pour le compiler et le déboguer.
Étonnamment, je n'ai pas réussi à trouver d'instructions. Je crée un nouveau projet ASP.NET 5/vNext. Tout ce que je vois, ce sont des cibles de compilation 4.5.1 et Core 5.0. Comment ajouter Mono à cette liste?
Il y avait des produits Mono/Mono pour VS qui intègrent Mono dans VS, mais maintenant il n'y en a plus.
Dans ce cas, vous devez cibler .NET Core 5, car ce sera la solution ultime.
Mono fournit toujours une certaine prise en charge pour les projets ASP.NET 4. *, mais il serait difficile d’affirmer la compatibilité car vous devez déployer sur Mono sous Linux pour vérification. Même dans ces cas, votre projet doit cibler la totalité du .NET Framework, comme ce que vous avez fait par le passé. Il n'y a pas de profil spécifique Mono à cibler.
Compiler à partir de Visual Studio et cible Mono
_ {Extrait de ici
Vous pouvez compiler contre Mono sous Windows à partir de Visual studio avec MonoHelper addin (en utilisant xbuild en dessous).
Il existe également une autre solution, qui cible un profil "Mono" .NET Framework de visual studio . Les étapes suivantes proviennent de ici et s’appliquent à VS 2012 (mais cela devrait fonctionner pour les autres versions).
Créez deux clés de registre:
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
Créez un lien vers le répertoire Mono dans le répertoire des références Microsoft (Vous devrez peut-être exécuter ce qui suit avec des droits d'administrateur)
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
Modifier FrameworkList.xml
Collez le texte suivant dans FrameworkList.xml
<?xml version="1.0" encoding="utf-8"?>
<FileList Redist="Mono-4.5" Name="Mono 4.5 Profile" RuntimeVersion="4.5" ToolsVersion="4.0" > </FileList>
Jetez un coup d'œil à la solution pythonnet et aux projets qui ciblent plusieurs environnements d'exécution CLR:
https://github.com/pythonnet/pythonnet/blob/master/pythonnet.sln