3

アセンブリ 'dllname.Moles, Version=1.2.0.0, Culture=neutral, PublicKeyToken=null' は、参照されたアセンブリよりも新しいバージョンの 'System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' を使用します「System.Web.Mvc、バージョン = 3.0.0.0、カルチャ = ニュートラル、PublicKeyToken = 31bf3856ad364e35」

.NET4.0 フレームワークを対象とする MVC3 ソリューションは、Moles フレームワークを使用する単体テスト プロジェクトで、Visual Studio 2010 で完全に機能しました。MVC4 はこのコンピューターにインストールされていませんでした。

Visual Studio 2012 のインストール (および .NET4.5 による .NET4.0 の必須のインプレース置換と MVC4 のインストール) の後、unittest プロジェクトは VS2010 でコンパイルされなくなり、指定されたエラーについて不平を言います。

アセンブリを調べると、MVC4 と MVC3 を参照していることがわかります??

  • BoneSoft.CSS、バージョン = 1.0.0.0、カルチャ = ニュートラル、PublicKeyToken = null
  • itextsharp、バージョン = 5.1.2.0、カルチャ = ニュートラル、PublicKeyToken = 8354ae6d2174ddca
  • Microsoft.ExtendedReflection、バージョン = 0.94.0.0、カルチャ = ニュートラル、PublicKeyToken = 31bf3856ad364e35
  • Microsoft.Moles.Framework、バージョン = 0.94.0.0、カルチャ = ニュートラル、PublicKeyToken = 31bf3856ad364e35
  • mscorlib、バージョン = 2.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b77a5c561934e089
  • mscorlib、バージョン = 4.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b77a5c561934e089
  • NHibernate.Validator、バージョン = 1.3.1.4000、カルチャ = ニュートラル、PublicKeyToken = 70154e18752585bd
  • システム、バージョン = 2.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b77a5c561934e089
  • システム、バージョン = 4.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b77a5c561934e089
  • System.Core、バージョン = 4.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b77a5c561934e089
  • System.Data、バージョン = 4.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b77a5c561934e089
  • System.Drawing、バージョン = 2.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b03f5f7f11d50a3a
  • System.Runtime.Caching、バージョン = 4.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b03f5f7f11d50a3a
  • System.Web、バージョン = 4.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b03f5f7f11d50a3a
  • System.Web.Mvc、バージョン = 3.0.0.0、カルチャ = ニュートラル、PublicKeyToken = 31bf3856ad364e35
  • System.Web.Mvc、バージョン = 4.0.0.0、カルチャ = ニュートラル、PublicKeyToken = 31bf3856ad364e35
  • System.Xml、バージョン = 2.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b77a5c561934e089

MVC4 はソリューション全体で参照されることはありませんが、Moles は、MVC3 を参照しているアセンブリの「moles アセンブリ」を生成するときに、MVC4 を含める必要があると考えています。

MVC3を参照していない他のアセンブリのアセンブリもほくろにしていますが、コンパイル時に問題はありません。

プロジェクトのほくろアセンブリを既に削除し、ほくろアセンブリを再構築して再作成しました:同じエラー。

問題を検索する場所のアイデア?

4

2 に答える 2

0

プロジェクトで同様のエラーが発生したため、MVCへの参照を削除し、MVC 3への参照を再度追加すると、コンパイルできました。

読む前に、.csprojファイルを見てください。

<Reference Include="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <Private>False</Private>
</Reference>

参照を再度追加した後:

<Reference Include="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />

そのため、タグ<SpecificVersion>False</SpecificVersion>によってプロジェクトが新しいバージョンのMVCへの参照を検索するようになり、バージョンの競合が発生したようです。

于 2013-01-14T17:27:13.847 に答える
0

VS 2012 をインストールすると、ボックスに MVC4 がインストールされました。MVC 3 は、MVC 4 を使用した SxS でうまく動作しません。MVC 4 がインストールされているマシンで動作するには、MVC 3 アプリを更新する必要があります。
これは、MVC 4.0 のリリース ノートに記載されています。「 ASP.NET MVC 4 をインストールすると ASP.NET MVC 3 RTM アプリケーションが壊れる」セクションをお読みください。setps の「必要な更新」に従います。

于 2012-10-02T22:16:05.300 に答える