Я попытался немного поискать и не нашел ответа. Работает ли Razor View Engine в Mono?
Работает ли Razor View Engine для Mono?
Ответ 1
Да, да. Я работаю с моно на Linux.
Вам нужно mono 2.10.2+ от стабильных источников от http://ftp.novell.com/pub/mono/sources-stable/
http://download.mono-project.com/sources/mono/
Затем вам нужно локально скопировать эти сборки в каталог приложения bin (вы берете их из Visual Studio в Windows):
System.Web.Mvc.dll
System.Web.Razor.dll
System.Web.WebPages.dll
System.Web.WebPages.Deployment.dll
System.Web.WebPages.Razor.dll
Затем вам, возможно, придется избавиться от следующих ошибок, которые вы могли бы сделать так:
Ошибка: области хранения не могут быть созданы при выполнении _AppStart.
Причина. Microsoft.Web.Infrastructure.dll был локально скопирован в корзину
каталог.
Решение: удалите Microsoft.Web.Infrastructure.dll и используйте моно
версия.
Ошибка: неверный код IL в System.Web.Handlers.ScriptModule:.ctor():
Метод тела пуст.
Причина: System.Web.Extensions.dll каким-то образом локально копируется в корзину
каталог.
Решение: Удалите System.Web.Extensions.dll и используйте моно версию.
Ошибка: классы в модуле не могут быть загружены. Описание: HTTP
500. Запрос обработки ошибок.
Причина: System.Web.WebPages.Administration.dll был локально скопирован в корзину
каталог.
Решение: Удалить System.Web.WebPages.Administration.dll и не ссылаться на него.
Ошибка: не удалось загрузить тип
'System.Web.WebPages.Razor.RazorBuildProvider' из сборки
'System.Web.WebPages.Razor, Version = 1.0.0.0, Culture = neutral,
PublicKeyToken = 31bf3856ad364e35. Описание: HTTP 500. Ошибка
запрос обработки.
Причина: System.Web.Razor.dll поврежден или отсутствует (или x64 вместо x32 или наоборот)...
Решение. Получите неповрежденную версию System.Web.Razor.dll и
localcopy в каталог bin
Изменить
Начиная с mono 2.12/MonoDevelop 2.8, все это больше не нужно.
Обратите внимание, что в версии 2.10 (Ubuntu 11.10) нужно также выполнить локальную копию System.Web.DynamicData.dll
, иначе вы получите ошибку, которая возникает только в App_Start (если вы этого не сделаете, вы получите YSOD в первый раз, когда вы вызовите страницу, но ТОЛЬКО в первый раз, потому что только тогда вызывается App_Start.).
Примечание
для моно 3.0+ с ASP.NET MVC4:
В установке script есть "ошибка".
Вернее, неполнота.
mod-mono, fastcgi-mono-server4 и xsp4 не будут работать правильно.
Например: fastcgi-mono-server4 дает вам этот отладочный вывод:
[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"
Это потому, что после установки mono3 он использует фреймворк 4.5, но xsp, fastcgi-mono-server4 и mod-mono не находятся в 4.5 GAC, только 4.0 gac.
Чтобы исправить это, используйте этот bash script:
#!/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
И если вы используете его через FastCGI (например, nginx), вам также понадобится это исправление для TransmitFile для ошибки chuncked_encoding
Почему у меня есть ненужные дополнительные байты в начале изображения? (исправлено в моно 3.2.3)
PS:
Вы можете получить .debs для 3.x:
https://www.meebey.net/posts/mono_3.0_preview_debian_ubuntu_packages/
или скомпилировать их самостоятельно из github
Установка Mono 3.x в Ubuntu/Debian
или как это из стабильных источников
http://ubuntuforums.org/showthread.php?t=1591370
2015
Теперь вы можете использовать предоставленные пакеты 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
Если вам нужны самые разные функции, вы также можете получить пакеты CI (ночные сборки, так сказать), если вам нужно последняя (или почти последняя) версия
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
Ответ 2
Ответ 3
Я предполагаю, что вам нужно будет дождаться выпуска MVC3 (когда он станет открытым), прежде чем на него можно будет ответить отлично.
Я уверен, что команда Mono заставит его работать.
Ответ 4
Mono 2.10 полностью поддерживает MVC3 и Razor, хотя Mono Project в настоящее время не может поставлять Mono с включенной версией стека MVC3/Razor с открытым исходным кодом (так же, как и MVC1 и MVC2).
Хотя ASP.NET MVC3 является открытым исходным кодом и лицензированы в соответствии с условиями Лицензия MS-PL, требуется несколько зависимости от новых библиотек, которые не с открытым исходным кодом и не являются частью Microsoft.NET Framework.
На данный момент у нас нет открытых исходные реализации этих библиотеки, поэтому мы не можем отправить полный Стек ASP.NET MVC3 с Mono (Мы все еще отправить ASP.NET MVC 1 и MVC 2 с помощью Mono для вашего развертывания).
В этом выпуске Mono есть достаточно исправления ошибок и исправления, которые вы будете возможность запуска сайтов ASP.NET MVC3 с он.
Ответ 5
Похоже, мы добираемся туда:
http://gonzalo.name/blog/archive/2011/Jan-21.html
Похоже, что он еще не опубликован ни в одной из опубликованных версий, но вы можете запустить его из исходного элемента управления.