2009-06-15 27 views
0

MVCを使用するいくつかの異なるサブWebを持つWebアプリケーションがあります。私が実行している問題は、2つのサブWebが異なるMVCバージョンを使用していることです。 1つは最近1.0バージョンを使用するようにアップグレードされ、1つは以前のプレビューバージョンでは動作しません。 1.0にサブウェブの1をアップグレードした後、プレビュー版を使用している他のウェブが次のエラーで失敗しASP.NET MVCバージョン管理の問題

Could not load type 'System.Web.HttpContextWrapper2' from assembly 'System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 

私は問題はその両方に起因していると思われます1.0バージョンとSystem.Web.Abstractions DLLのプレビューバージョンは3.5.0.0というラベルが付けられていますが、実際には異なるクラスが含まれています。したがって、プレビューアプリケーションがSystem.Web.Abstractionsを参照すると、binディレクトリにあるプレビューバージョンではなく、すでにロードされているMVC 1.0バージョンが取得されます。

実際に同じバージョン番号でラベル付けされているにもかかわらず、2つの異なるバージョンの場合と同じように、ランタイムにアセンブリを2回ロードするような方法はありますか?私は自分のWeb設定でタグを使用することを検討していましたが、これを行うためにどのように使用するのか、あるいは私がここで何をする必要があるのか​​を達成するにはどうすればよいでしょうか。

+0

本当に2つのバージョンが並んで実行されている必要がありますか?以前のバージョンでは問題が発生していませんか? –

+0

私は実際に両方のバージョンを並べて実行する必要があります - 1.0バージョンでは、プレビューバージョンに対して書かれたコードがもはや機能しなくなる原因となる改訂があります。私は1.0を使用するためにプレビューバージョンを使用してアプリを変換することができましたが、私はむしろ可能であればそれをやることをやめようと思います。 –

+0

私はMVC 1.0にアプリを変換するだけで終わった。それは最終的にとにかく行われなければならなかったが、私はまだこれを行う方法があるかどうかを知ることに興味があるだろう。 –

答えて

0

あなたは入れることができSystem.Web.Abstractions.dllSystem.Web.Mvc.dllと(MVCプレビューからとMVC 1.0から)対応バージョンとSystem.Web.Routing.dllアセンブリ内各サブウェブの〜/ binフォルダ。

更新日:

をASP.NET MVCプレビューバージョンを使用して、アプリケーションのweb.configファイルからこれを削除してください:

<system.web> 
    <assemblies> 
     <!--<add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />--> 
    </assemblies> 
+0

ここで何を意味するのかわかりません。 3.5 SP1がサーバーにインストールされているので、MVC 1.0はすでにすべてのアプリケーション用に用意されています。プレビューバージョンが必要なアプリケーションは/ binフォルダにプレビュービンがありますが、SP1がGACに1.0ビンを入れて(そしてプレビュービンに同じバージョン番号があるので)無視されているようです –

+0

<アセンブラを追加.. /> ASP.NET MVCプレビューを使用してアプリケーションのweb.config/system.web/compilation/assembliesセクションからAbstractions/Mvc/Routingのために? –

+0

@ eu-ge-ne - はい、それを試してみましたが効果はありませんでした。これまでと同じエラーメッセージが表示されます。 –

1

我々は同様の問題に遭遇しました。私たちのアプリケーションのほとんどはMVC 3.0を使用しています。 MVC 1.0を使用するコンテンツ管理システムを使用しています。コンテンツ管理システムのアプリケーションコンポーネントの1つを参照しようとしていたため、互換性の問題が発生しました。両方のバージョンのMVCをGACに組み込むと、これで問題は解決しました。