0

MVC 4 アプリケーション (System.Web.Razor バージョン 2.0.0.0) を開発しています。

このアプリケーションから外部アセンブリを参照しました (System.Web.Razor バージョン 1.0.0.0 を参照しています)。

そのアセンブリのNuGetパッケージからSystem.Web.Razor v 1.0.0.0を受け取ったので、MVCアプリケーションのルートにあるフォルダー名「\ Dependency」に追加し、web.configのセクションに次を追加しました。

<dependentAssembly>
    <assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <codeBase version="1.0.0.0" href="/Dependency/System.Web.Razor.dll"/>
  </dependentAssembly>

これは、私の開発環境では正しく機能します。

しかし、本番環境では、エラーが発生しています

"Could not load file or assembly 'System.Web.Razor, Version 1.0.0.0". 
The system could not find the file specified.

実稼働環境を確認したところ、Dependency フォルダーに "System.Web.Razor" バージョン 1.0.0.0 が表示されました。また、実稼働サーバーの web.config には、上記のバインディングが含まれています。

この問題は以前に整理したことを覚えていますが、現在発生しているため、永久に取り除きたいと考えています。

この問題に対処する方法について何か考えはありますか?

ありがとう

ニルマン

PS追加するいくつかのポイント-

  1. System.Web.Razor バージョン 1.0.0.0 を参照する外部アセンブリは、RazorEngine バージョン 3.0.8 です。

  2. ビルドはMS Buildを通じて生成されています

4

1 に答える 1

0

プロジェクトで System.Web.Razor.dll のバージョン 1 とバージョン 2 の両方を同時に参照しようとしないでください。それらには多くの重複するクラス名と名前空間名があり、このように一緒に使用することはできません。

ただし、表示されているエラーは有用でも正確でもありません。このエラーが表示される理由を調査し、バグを報告します。

それまでの間、バージョン 1 を参照するパッケージの所有者に連絡しましたか? ハードコーディングされたバージョンの依存関係がある場合、Razor v2 アプリケーションを作成しているユーザーまたは他のユーザーがパッケージを使用できないことを意味します。

于 2013-01-04T03:24:17.460 に答える