Вопрос

Я попытался искать немного и не нашел ответа. Работает ли бритва двигателя в моно?

Это было полезно?

Решение

Да, это так. У меня он работал с Mono на Linux.

Вам нужно mono 2.10.2+ из стабильных источников от
http://ftp.novell.com/pub/mono/sources-stable/
http://download.mono-project.com/sources/mono/

Затем вам нужно локаковать эти сборки в каталог бин вашего приложения (вы берете их из визуальной студии в Windows):

System.web.mvc.dll.
System.web.razor.dll.dll
System.Web.webpages.dll.
System.Web.webpages.deplobement.dll.dll.dll.dll
System.web.webpages.razor.dll.dll.

Тогда вам, возможно, придется избавиться от следующих ошибок, которые вы могли бы сделать так:

Ошибка: Схема хранения не могут быть созданы при выполнении _appstart.
Причина: Microsoft.Web.infrastructure.dll был локальным для каталога Bin.
Разрешение: Удалить Microsoft.Web.infrastructure.dll и использовать монофункцию.

Ошибка: Неверный код IL в System.Web.handlers.scriptModule: .CTOR (): Тело метода пусто.
Причина: System.Web.extensions.dll Как-то локатирует каталог Bin.
Разрешение: Удалить System.Web.extSions.dll и использовать монофункцию.


Ошибка: Классы в модуле не могут быть загружены. Описание: HTTP 500. Запрос обработки ошибок.
Причина: system.web.webpages.administration.dll был локальнокопирован в каталог Bin.
Разрешение: Удалить System.Web.webpages.administration.dll и неверное это


Ошибка: не удалось загрузить тип
«System.Web.webpages.razor.razorbuildProvider» из сборки «System.Web.webpages.razor, version = 1.0.0.0, культура = нейтральная, publickeyteken = 31bf3856ad364e35 '. Описание: HTTP 500. Запрос обработки ошибок.
Причина: system.web.razor.dll поврежден или отсутствует (или x64 вместо X32 или VICE-VERSIA) ...
Разрешение: получить неразрешеный Версия System.Web.razor.dll и llaneCopy в каталог Bin

Редактировать
По состоянию на моно 2.12 / MONODEVOPEP 2.8, все это больше не нужно.

Обратите внимание, что на 2.10 (Ubuntu 11.10) нужно для localcopy System.Web.DynamicData.dll Кроме того, иначе вы получите ошибку, которая возникает только в App_Start (если вы этого не сделаете, вы впервые получите YSOD, но только первый раз, потому что только тогда вызывается App_Start.).

Примечание
Для Mono 3.0+ с ASP.NET MVC4: есть «ошибка» в сценарии установки. Или, скорее неполнота.

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 он использует Framework 4.5, но XSP, FastCGI-MONO-SERVER4 и MOD-MONO не находятся в 4,5 GAC, только 4,0 GAC.
Чтобы исправить это, используйте этот сценарий 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

И если вы используете его через FastCGI (например, nginx), вам также нужно это исправить для передачи ошибки 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

Другие советы

Я предполагаю, что вам нужно будет дождаться выпуска MVC3 (когда он становится открытым источником) до этого можно ответить идеально.

Я уверен, что команда Mono сделает это работать, хотя.

Mono 2.10 Enderards полностью поддерживает MVC3 и Razor, хотя и проект MONO не может в настоящее время не может отправить моно-источник с открытым исходным источником.

Из Выпустить ноты:

Хотя ASP.NET MVC3 является открытым исходным кодом и лицензирован в соответствии с условиями лицензии MS-PL, требуется несколько зависимостей о новых библиотеках, которые не являются открытым исходным кодом, и не являются не являются частью Microsoft.net Framework.

На данный момент у нас нет реализаций с открытым исходным кодом этих библиотек, поэтому мы не можем отправить полный стек ASP.NET MVC3 с Mono (мы все еще отправляем ASP.NET MVC 1 и MVC 2 с Mono для вашего удовольствия от развертывания).

Этот моно выпуску, однако, имеет достаточно исправлений ошибок и исправлений, которые вы сможете запустить сайты ASP.NET MVC3.

Похоже, мы туда добираемся

http://gonzalo.name/blog/archive/2011/jan-21.html.

Похоже, что это еще не в одном из опубликованных версий, но вы можете запустить его из исходного управления.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top