1

MVC2 を使用する Web プロジェクトに取り組んでいます。私はRazorEngineを使って電子メールのテンプレートを作成することにしました。これは、MVC2 プロジェクトを使用してプロトタイプを作成していたときに問題なく動作するように見えたので、RazorEngine が電子メール テンプレート ソリューションで問題なく動作すると想定しました。当時私が忘れていたのは、ローカルの開発マシンに実際に MVC3 がインストールされていたことです。

プロジェクトをプレテスト サーバーにデプロイした後、アプリケーションが RazorEngine で何かをしようとすると、ログに次のエラーが表示されます。

ファイルまたはアセンブリ 'System.Web.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' またはその依存関係の 1 つを読み込めませんでした。

システムは、指定されたファイルを見つけることができません。

ファイル名: 'System.Web.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

RazorEngine.Compilation.DefaultCompilerServiceFactory.CreateCompilerService (言語言語) で

RazorEngine.Templating.TemplateService.CreateTemplateType (文字列 razorTemplate、型 modelType) で

RazorEngine.Templating.TemplateService.CreateTemplate[T] (StringrazorTemplate、T モデル) で

RazorEngine.Templating.TemplateService.Parse[T] (文字列 razorTemplate、T モデル) で

RazorEngine.Razor.Parse [T] (文字列 razorTemplate、T モデル) で

System.Dynamic.UpdateDelegates.UpdateAndExecute3 [T0、T1、T2、TRet] (CallSite サイト、T0 arg0、T1 arg1、T2 arg2) で

Persistence.Utility.RazorEngineHelper.Parse (文字列 templateName、オブジェクト モデル) で ...

「System.Web.Razor」が見つからないという事実は、この DLL がデプロイされたサーバーに存在しないことを意味します。展開サーバーとローカル開発マシンの唯一の違いは、展開サーバーに MVC3 がインストールされていないことですが、展開サーバーは通常私が制御するものではないため、間違っている可能性があります。それに関する多くの情報。この特定のアプリケーションをホストすることを意図しているため、このアプリケーションのこのサーバーへの以前の展開がありました。RazorEngine を依存関係としてデプロイするのはこれが初めてです。

4

3 に答える 3

2

System.Web.Razor dll は RazorEngine でデプロイされています。\binディレクトリにあることを確認できますか?

于 2012-07-11T07:11:50.537 に答える
0

Razor 構文/ビュー エンジンは、MVC 3 で最初に登場したと思います。

于 2012-07-11T03:24:56.410 に答える
0

同じ問題がありました。

解決策は、必要なバージョンの System.Web.Razor.dll を RazorEngine.dll と同じフォルダーに配置することです。

そうすると、RazorEngine.dll と System.Web.Razor.dll がコピー先にコピーされます。

于 2015-05-13T21:01:48.620 に答える