3

現在、ASP.NET MVC のプレビュー 2 からベータ リリースにサイトを更新している最中です。徹底的な検索の後、サイトに解決策がなく、最後のコンパイルエラーに陥っています。Windsor コンテナーを使用して IOC を設定するコードが Global.asax.cs にいくつかあります。

ControllerBuilder.Current.SetControllerFactory(typeof(WindsorControllerFactory));

コンパイラは次のように不平を言っています。

The type 'System.Web.Mvc.IControllerFactory' is defined in an assembly that is not referenced. 
You must add a reference to assembly 'System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.

奇妙なことは、このアセンブリ参照されていることです。MVC ベータ アセンブリ フォルダーから参照し、ローカルにコピーするように設定します。bin ディレクトリを削除して再構築し、リフレクターでアセンブリを表示してインターフェイスを確認することもできます。参照を削除して再度追加し、web.config のアセンブリと名前空間のセクションを変更してみました。System.Web.Mvc を GAC から削除して、正しいコピーが使用されていることを確認しました。

この質問を書いているときに、Windsor が古いバージョンのアセンブリを内部的に期待している可能性があることに気付きました。これが問題であるかどうかを判断するために MvcContrib から最新のものをダウンロードしています。結果を投稿します。この場合、アセンブリのバージョン番号を最新のリリースで変更して、これを明確にするべきではありませんか?

読んでくれてありがとう、ブレット

4

2 に答える 2

2

PublicKeyToken=null は正しくないようです...

編集:私は正しかった、PublicKeyToken は「31bf3856ad364e35」である必要があります。署名されていない System.Web.Mvc.dll のプライベート ビルドに対してリンクされているようです。

于 2008-12-11T02:27:11.170 に答える
1

ベータ版のアップデート ノートで説明されているように、web.config ファイルで適切なアセンブリ参照を 3.5.0.0 に更新したことを確認します。

于 2008-12-11T02:16:28.320 に答える