J’essaie d’obtenir l’installation de Mono 3.0 pour exécuter les sites MVC4 sous .NET 4 et .NET 4.5. J’ai travaillé avec différentes erreurs, que puis-je faire pour le mettre en place?
Configuration du serveur
Apache / Mono Config
MonoServerPath "/usr/local/bin/mod-mono-server4"
/ usr / local / bin / mod-mono-server4 contenu:
#!/bin/sh exec /usr/local/bin/mono $MONO_OPTIONS "/usr/local/lib/mono/4.5/mod-mono-server4.exe" "$@"
Mettre à jour
Le nœud du problème est que Mono ne fournit pas MVC4 dont le site a besoin. Il a toujours les DLLs MVC3, pourtant il a les DLLs Razor 2 mais pas les DLLs Razor 1 que MVC3 veut poursuivre.
Tout ce dont vous avez besoin est maintenant disponible dans le cadre Mono ou sur NuGet. J’ai créé un modèle téléchargeable pour MVC4 pour .Net 4.0 et .Net 4.5 et quelques remarques sur la résolution des problèmes:
Les étapes de l’article de blog sont les suivantes:
Supprimez Microsoft.Web.Infrastructure.dll du répertoire bin \ et du projet
Ou, à partir de la ligne de commande:
sudo mkdir /Library/Frameworks/Mono.framework/Versions/3.2.5/etc/mono/registry sudo chmod g+rwx /Library/Frameworks/Mono.framework/Versions/3.2.5/etc/mono/registry
(remplacer 3.2.5 par votre version mono, que vous obtenez en ligne de commande avec mono – version);
Le fichier Microsoft.Web.Infrastructure.dll est requirejs sur .Net sous Windows. Par conséquent, la suppression n’est pas la solution la plus simple si vous souhaitez déployer plusieurs plates-formes.
Succès
Si vous souhaitez exécuter MVC4 sur Mono, vous devez utiliser des DLL Microsoft qui ne sont pas fournis par Mono pour le moment.
Un mot d’avertissement – En jetant un coup d’oeil à la source Mono, il semble y avoir des méthodes et des classes dans la source MC4 qui n’existent pas dans la version 3.2.0. Il peut y avoir des fonctionnalités qui sont cassées. Le site que je gère est à toutes fins utiles un site MVC3 construit contre les dernières DLL.
DLL Microsoft à copier
Une fois que vous avez copié les dll, si vous avez toujours des problèmes, vous devrez peut-être faire un travail de détective si la solution ci-dessus ne fonctionne pas. Si vous obtenez un message d’erreur indiquant que Mono ne peut pas trouver la DLL, c’est généralement l’une des trois raisons suivantes:
Dépannage
Is n’a pas le dll – Vous pouvez essayer d’utiliser la version Microsoft de la DLL
Il recherche une version antérieure de la DLL lorsque la version correcte est installée dans le GAC ou dans votre dossier de projet. Un assembly de votre projet fait probablement référence à cette version quelque part. Vous pouvez utiliser une redirection directe pour forcer la version spécifique que vous avez utilisée à la place
Il ne peut toujours pas trouver le dll – Ajouter l’assembly dans la section compilation / assemblies de votre web.config
Vous obtenez un message “Impossible de trouver la vue recherchée …” – si l’une des vues de ce dossier de vues particulier contient des erreurs de compilation, vous recevrez ce message.