¿El motor Razor View funciona para Mono?


Intenté buscar un poco y no encontré una respuesta. ¿Razor View Engine funciona en Mono?

Author: Earlz, 2010-11-21

5 answers

Sí, lo hace. Lo tengo trabajando con mono en Linux.

Se 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 copiar localmente estos ensamblados en el directorio bin de su aplicación (los toma de Visual Studio en Windows):

Sistema.Web.Mvc.dll
Sistema.Web.Afeitar.dll
Sistema.Web.pagina.DLL
Sistema.Web.pagina.Despliegue.dll
Sistema.Web.pagina.Afeitar.dll

Entonces, es posible que tenga que deshacerse de los siguientes errores que podría haber cometido como este:

Error: Los ámbitos de almacenamiento no se pueden crear cuando _AppStart se está ejecutando.
Causa: Microsoft.Web.Infraestructura.dll fue copiado localmente a la papelera directorio.
Resolución: Eliminar Microsoft.Web.Infraestructura.dll y usar el mono version .

Error: Código IL no válido en Sistema.Web.Manipuladores.ScriptModule:.ctor (): el cuerpo del método está vacío.
Causa: Sistema.Web.Ampliación.dll de alguna manera obtiene localcopied a la papelera directorio.
Resolución: Eliminar Sistema.Web.Ampliación.dll y utilice la versión mono.


Error: Las clases del módulo no se pueden cargar. Descripción: HTTP 500. Solicitud de procesamiento de error.
Causa: Sistema.Web.pagina.Administración.dll fue copiado localmente a la papelera directorio.
Resolución: Suprimir Sistema.Web.pagina.Administración.dll y no hacer referencia a ella


Error: No se pudo cargar el tipo
Sistema.Web.pagina.Afeitar.RazorBuildProvider ' del montaje Sistema.Web.pagina.Razor, Version=1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35". Descripción: HTTP 500. Error solicitud de procesamiento.
Causa: Sistema.Web.Afeitar.dll está dañado o falta (o x64 en lugar de x32 o viceversa)...
Resolución: Obtener una versión incorrupta de Sistema.Web.Afeitar.dll y localcopy al 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), uno necesita localcopy System.Web.DynamicData.dll también, o de lo contrario obtendrá un error que solo ocurre en App_Start (si no lo hace, obtendrá un YSOD la primera vez que llame a una página, pero SOLO la primera vez, porque solo entonces se llama a App_Start.).

Nota
para mono 3.0 + con ASP.NET MVC4: Hay un " bug " 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, utiliza 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, use 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 corrección para TransmitFile para el error chuncked_encoding
¿Por qué tengo bytes adicionales no deseados al principio de la imagen? (corregido en mono 3.2.3)

PS:
Usted puede conseguir el .debs para 3.x desde aquí:
https://www.meebey.net/posts/mono_3.0_preview_debian_ubuntu_packages / o compile yourselfs desde github Instalando Mono 3.x en Ubuntu / Debian o como este desde el establo fuente 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 obtener los paquetes de CI (nightly builds, por así decirlo), si necesita la versión más reciente (o casi 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
 59
Author: Stefan Steiger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 10:31:13
 4
Author: yojimbo87,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-21 19:05:04

Mi conjetura es que usted tendrá que esperar a que el lanzamiento de MVC3 (cuando se convierte en código abierto) antes de que se pueda responder perfectamente.

Estoy seguro de que el equipo Mono hará que funcione, sin embargo.

 3
Author: Will Dean,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-21 19:00:13

Mono 2.10 en adelante es totalmente compatible con MVC3 y Razor, aunque el Proyecto Mono 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.

De las Notas de la versión :

Aunque ASP.NET MVC3 es de código abierto y licenciado bajo los términos de la Licencia MS-PL, toma unos pocos dependencias en nuevas bibliotecas que son no son de código abierto ni forman parte de el Microsoft.NET Marco.

En este punto no tenemos abierto implementaciones de origen de los bibliotecas, por lo que no podemos enviar el completo ASP.NET Pila MVC3 con Mono (Todavía buque ASP.NET MVC 1 y MVC 2 con Mono para su disfrute de implementación).

Esta versión Mono sin embargo tiene suficiente correcciones de errores y parches que se capaz de correr ASP.NET Sitios MVC3 con se.

 3
Author: Kynth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-13 15:58:04

Parece que estamos llegando a eso:

Http://gonzalo.name/blog/archive/2011/Jan-21.html

Parece que todavía no está en ninguna de las versiones publicadas, pero puede ejecutarlo desde el control de código fuente.

 1
Author: Alastair,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-10 03:31:58