質問

少し検索してみましたが、答えが見つかりませんでした。Razor View エンジンは Mono で動作しますか?

役に立ちましたか?

解決

はい、そうです。Linux上のmonoで動作させています。

以下の安定したソースからの Mono 2.10.2+ が必要です。
http://ftp.novell.com/pub/mono/sources-stable/
http://download.mono-project.com/sources/mono/

次に、これらのアセンブリをアプリの bin ディレクトリにローカルコピーする必要があります (Windows 上の Visual Studio から取得します)。

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は、Binディレクトリにローカルコピーされました。
解決:Microsoft.Web.Infrastructor.dllを削除する モノバージョンを使用します.

エラー:System.Web.Handlers.ScriptModule:.ctor () 内の無効な IL コード:メソッド本体が空です。
原因:System.web.extensions.dllは、何らかの形でBinディレクトリにローカルコピーを取得します。
解決:System.Web.Extensions.dll を削除します モノラルバージョンを使用してください.


エラー:モジュール内のクラスをロードできません。説明:HTTP 500。リクエストの処理中にエラーが発生しました。
原因:System.web.webpages.administration.dllは、Binディレクトリにローカルコピーされました。
解決:System.Web.WebPages.Administration.dll を削除します そしてそれを参照解除します


エラー:タイプを読み込めませんでした
'System.web.webpages.razor.razorbuildprovider' from Assembly 'system.web.webpages.razor、version = 1.0.0.0、culture = neutral、publickeytoken = 31bf3856ad364e35'。説明:HTTP500。エラー処理リクエスト。
原因:System.Web.Razor.dll が壊れているか、見つかりません (または x32 の代わりに x64、またはその逆) ...
解決:入手 腐敗していない system.web.razor.dllのバージョンとBinディレクトリへのローカルコピー

編集
mono 2.12 / MonoDevelop 2.8 以降、これらはすべて必要なくなりました。

2.10 (Ubuntu 11.10) では、ローカルコピーする必要があることに注意してください。 System.Web.DynamicData.dll そうしないと、App_Start でのみ発生するエラーが発生します (これを行わないと、最初にページを呼び出したときに YSOD が発生しますが、App_Start が呼び出されるのは最初のときだけです。)。

注記
ASP.NET MVC4 を使用した Mono 3.0 以降の場合:インストール スクリプトに「バグ」があります。というか不完全さ。

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 スクリプトを使用します。

#!/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)、chunked_encoding バグのための TransmitFile のこの修正も必要です
画像の先頭に不要な余分なバイトがあるのはなぜですか? (モノラル 3.2.3 で修正)

追伸:
3.x の .debs はここから入手できます。
https://www.meebey.net/posts/mono_3.0_preview_debian_ubuntu_packages/または github から自分でコンパイルすることもできますUbuntu/Debian への Mono 3.x のインストールまたは安定したソースからこのように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チームは、それはしかし、動作するようになると確信しています。

モノプロジェクトは現在まだ(MVC1とMVC2と同様に含まれている)を含んでいた。モノラル以降2.10は完全に、MVC3及びかみそりをサポートP>

リリースノートのから:

  

ASP.NET MVC3はオープンソースですが、   との条件の下でライセンス   MS-PLライセンスは、それはいくつかを取ります   ある新しいライブラリの依存関係   ないオープンソースでも、彼らはの一部であります   Microsoft.NET Frameworkのます。

     

この時点で、我々は開いていません   これらのソースの実装   図書館、私たちは完全なを出荷することはできません   モノとASP.NET MVC3スタック(我々はまだ   モノラルとASP.NET MVC 1とMVC 2を出荷   )展開の楽しみのため。

     

このモノラルのリリースは、しかし、十分なを持っています   あなたがなることのバグ修正とパッチ   とASP.NET MVC3サイトを実行することができ   これます。

私たちはそこに取得しているように見えます:

http://gonzalo.name/blog/archive/2011/Jan- 21.htmlする

はそれのように見えますが、まだ公表されたバージョンのいずれかではありませんが、ソース管理からそれを実行することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top