VS2010からVS2012にアップグレードしたMVC3プロジェクトがあります。プロジェクトには、MiniProfiler
への参照もあります。私たちのアプリケーションは、VS2012で問題なくコンパイルされ、警告やエラーなしで実行されます。 IIS Expressで実行すると、両方のアセンブリが正常に読み込まれます。ただし、ASP.NETコンパイラツールを使用すると、次の警告が表示されます。
Microsoft(R)ASP.NETコンパイルツールバージョン4.0.30319.17929 ASP.NETアプリケーションをプリコンパイルするユーティリティCopyright(C)MicrosoftCorporation。全著作権所有。
(0):警告:次のアセンブリは、ターゲットよりも高いバージョンの.NET Frameworkに依存しており、実行時に正しく読み込まれず、障害が発生する可能性があります:MiniProfiler、Version = 2.1.0.0、Culture = neutral、PublicKeyToken = b44f9351044011a3。依存関係は、System.Data.Linq、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = b77a5c561934e089です。依存アセンブリがターゲットフレームワークに対して正しいことを確認するか、アドレス指定しているターゲットフレームワークが依存アセンブリのフレームワークであることを確認する必要があります。
System.Data.Linq
への明示的な参照はありません。 VS2012にアップデートするまで、エラーはありませんでした。 MiniProfiler
バージョンは、実際に.NET 4.0を対象としています(アプリケーションと同様)。この警告の原因は何ですか?
この答え からのヒントでようやく修正することができました。 <add>
に次のweb.config
行を追加しました。
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<!-- etc... -->
<add Assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<!-- etc... -->
</assemblies>
</compilation>
<system.web>
</configuration>
Web.configでtargetFrameworkを変更しましたか?