13

少し前にプロジェクトを MVC 3 から MVC 4 に移動しました。

ビルドすると、メッセージが表示されます

1>  No way to resolve conflict between "System.Web.Mvc, Version=3.0.0.0 ..." and , Version=2.0.0.0
1>  Consider app.config remapping of assembly "System.Web.WebPages ..." from Version "1.0.0.0" to Version "2.0.0.0"  to solve conflict and get rid of warning.
1>  Consider app.config remapping of assembly "System.Web.WebPages.Razorfrom Version "1.0.0.0" [c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies\System.Web.WebPages.Razor.dll] to Version "2.0.0.0" [C:\Users\OEM\documents\visual studio 2012\Projects\DabTrial\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.WebPages.Razor.dll] to solve conflict and get rid of warning.

等々。

参照を見ると、それらはすべて新しいバージョンであり、web.config は新しいバージョンのみを参照しています。(Windows エクスプローラーで) 公開キー トークンでソリューション ディレクトリ全体を検索すると、以前のバージョンへの参照を含む XML タイプのファイルが見つかりません。

明らかにファイルへのパスは異なりますが、コンパイラが以前の .dll ファイルのパスに向けられている場所を見つけることができません。

プロジェクトは正常にビルドおよび実行されますが、コンパイラが何らかの理由でこれらの変更を提案していると思います。助けてくれてありがとう。

4

3 に答える 3

13

ナゲットの依存関係は、おそらく MVC3 バージョンを参照しています。MVC4 バージョンを強制するために、以下を Web 構成に入れてみることができます。

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
</runtime>

パッケージ マネージャー コンソールで以下を実行することもできます。

Update-Package -Reinstall

このコマンドには少なくともバージョン 2.1 の nuget が必要ですが、.NET を更新した場合はパッケージが更新され、再ターゲットされます。詳細については、この投稿を確認してください。

.Net 4.0 から 4.5 へのリターゲット ソリューション - NuGet パッケージのリターゲット方法

于 2013-06-06T00:47:11.443 に答える