asp.net - net - ¿El Razor View Engine funciona para Mono?
select asp-for asp-items (5)
Mi suposición es que tendrás que esperar el lanzamiento de MVC3 (cuando se convierte en código abierto) antes de que pueda responderse perfectamente.
Estoy seguro de que el equipo de Mono lo hará funcionar, sin embargo.
Traté de buscar un poco y no encontré una respuesta. ¿El Razor View Engine funciona en Mono?
Mono 2.10 en adelante es totalmente compatible con MVC3 y Razor, aunque el Mono Project actualmente no puede enviar Mono con una implementación de código abierto de la pila MVC3 / Razor incluida (de la misma manera que MVC1 y MVC2 están incluidos) por el momento.
Aunque ASP.NET MVC3 es de código abierto y está licenciado según los términos de la licencia MS-PL, requiere algunas dependencias de nuevas bibliotecas que no son de código abierto ni forman parte de Microsoft.NET Framework.
En este momento no tenemos implementaciones de código abierto de esas bibliotecas, por lo que no podemos enviar la pila completa de ASP.NET MVC3 con Mono (todavía enviamos ASP.NET MVC 1 y MVC 2 con Mono para su disfrute de implementación).
Sin embargo, esta versión Mono tiene suficientes correcciones de errores y parches que usted podrá ejecutar con ella sitios ASP.NET MVC3.
Parece que estamos llegando allí:
http://gonzalo.name/blog/archive/2011/Jan-21.html
Parece que aún no está en ninguna de las versiones publicadas, pero puede ejecutarlo desde el control de origen.
Sí, lo hace. Lo tengo trabajando con mono en Linux.
Necesita mono 2.10.2+ de las fuentes estables de
http://ftp.novell.com/pub/mono/sources-stable/
http://download.mono-project.com/sources/mono/
Luego, debe localizar localmente estos ensamblajes en el directorio bin de su aplicación (los toma de Visual Studio en Windows):
System.Web.Mvc.dll
System.Web.Razor.dll
System.Web.WebPages.dll
System.Web.WebPages.Deployment.dll
System.Web.WebPages.Razor.dll
Entonces, es posible que deba deshacerse de los siguientes errores que podría haber cometido así:
Error: los ámbitos de almacenamiento no se pueden crear cuando _AppStart se está ejecutando.
Causa: Microsoft.Web.Infrastructure.dll se copió localmente en el directorio bin.
Resolución: elimine Microsoft.Web.Infrastructure.dll y use la versión mono .
Error: código IL no válido en System.Web.Handlers.ScriptModule: .ctor (): el cuerpo del método está vacío.
Causa: System.Web.Extensions.dll de alguna manera se copia localmente en el directorio bin.
Resolución: elimine System.Web.Extensions.dll y use la versión mono .
Error: las clases en el módulo no se pueden cargar. Descripción: HTTP 500. Solicitud de procesamiento de error.
Causa: System.Web.WebPages.Administration.dll se copió localmente en el directorio bin.
Solución: elimine System.Web.WebPages.Administration.dll y desvísela.
Error: no se pudo cargar el tipo
''System.Web.WebPages.Razor.RazorBuildProvider'' del ensamblado ''System.Web.WebPages.Razor, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35''. Descripción: HTTP 500. Solicitud de procesamiento de error.
Causa: System.Web.Razor.dll está dañado o falta (o x64 en lugar de x32 o viceversa) ...
Solución: obtenga una versión no corrupta de System.Web.Razor.dll y localcopy en el directorio bin
Editar
A partir de mono 2.12 / MonoDevelop 2.8, todo esto ya no es necesario.
Tenga en cuenta que en 2.10 (Ubuntu 11.10), también es necesario copiar localmente System.Web.DynamicData.dll
, o bien se produce un error que solo ocurre en App_Start (si no lo hace, obtiene un YSOD por primera vez) llama a una página, pero SOLAMENTE la primera vez, porque solo entonces se llama a App_Start).
Nota
para mono 3.0+ con ASP.NET MVC4: hay un "error" en el script de instalación. O más bien un estado incompleto.
mod-mono, fastcgi-mono-server4 y xsp4 no funcionarán correctamente.
Por ejemplo: fastcgi-mono-server4 le da esta salida de depuración:
[error] 3384#0: *101 upstream sent unexpected FastCGI record: 3 while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost:8000"
Esto es, porque después de la instalación de mono3, usa framework 4.5, pero xsp, fastcgi-mono-server4 y mod-mono no están en el 4.5 GAC, solo el 4.0 gac.
Para arreglar esto, usa este script bash:
#!/bin/bash
# Your mono directory
#PREFIX=/usr
PREFIX=/opt/mono/3.0.3
FILES=(''mod-mono-server4''
''fastcgi-mono-server4''
''xsp4'')
cd $PREFIX/lib/mono/4.0
for file in "${FILES[@]}"
do
cp "$file.exe" ../4.5
done
cd $PREFIX/bin
for file in "${FILES[@]}"
do
sed -ie ''s|mono/4.0|mono/4.5|g'' $file
done
Y si lo usa a través de FastCGI (por ejemplo, nginx), también necesita esta solución para TransmitFile para el error chuncked_encoding
¿Por qué tengo bytes adicionales no deseados al comienzo de la imagen? (arreglado en mono 3.2.3)
PD:
Puedes obtener los .debs para 3.x desde aquí:
https://www.meebey.net/posts/mono_3.0_preview_debian_ubuntu_packages/ o compilarlos usted mismo desde github Instalar Mono 3.x en Ubuntu / Debian o como este de las fuentes estables http://ubuntuforums.org/showthread.php?t=1591370
2015
Ahora puede usar los paquetes proporcionados por Xamarin
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update
Si necesita las características más recientes, también puede buscar los paquetes de CI (construcciones nocturnas, por así decirlo) , si necesita la última versión (o casi la más reciente)
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://jenkins.mono-project.com/repo/debian sid main" | sudo tee /etc/apt/sources.list.d/mono-jenkins.list
sudo apt-get update