webdevqa.jp.net

WindowsアップデートによりMVC3およびMVC4が機能しなくなりました

10月15日にWindows Update(8.1)をインストールしたのは私だけで、この警告のために突然MVCが動作しなくなりましたか?

警告1この参照を解決できませんでした。アセンブリ「System.Web.Mvc、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35、processorArchitecture = MSIL」が見つかりませんでした。アセンブリがディスクに存在することを確認してください。この参照がコードで必要な場合、コンパイルエラーが発生する可能性があります。

このWindowsアップデートは、バージョン番号4.0.0.1のMVCの新しいバージョンをインストールし、プログラムファイルフォルダーから古いバージョンを削除するようです。

誰かが各プロジェクトをクロールせずにこれを修正する方法を知っていますか?

125
Yogurtu

最善の解決策は、DLLをバージョン4.0.0.1に更新することです。 nugetを使用してみてください:

Install-Package Microsoft.AspNet.Mvc -Version 4.0.40804 -Project <your project name>

これは自動的に更新されます

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.1" />
  </dependentAssembly>

次の場所で手動でバージョンSystem.Web.Mvcを編集する必要があります。

<compilation debug="true" targetFramework="4.0">
  <assemblies>
    <add Assembly="System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
105

ビルドを実行するには、バージョンを4.0.0.から4.0.0.1に更新するために、各。csprojに手動で触れる必要がありました。かなりの痛み。

新しい参照は次のようになります。

<Reference Include="System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
25
Zach La Lond

更新後に同じ問題が発生しました:

Microsoft ASP.NET MVC 4.0(KB2993928)のセキュリティ更新プログラム
http://support.Microsoft.com/kb/2993928

ただし、System.Web.Mvcを参照するプロジェクトの場合のみで、パッケージではインストールされません。

Microsoft ASP.NET MVC 4.0 Runtimeをインストールしておらず、更新プログラムを受け取っていなかった同僚は問題なく、4.0.0.1ではなく4.0.0.0を参照していました。

手動で参照を4.0.0に変更しました。1、チェックイン後、同僚は4.0への参照でビルドできました。 .0。。
(Win7 Pro SP1、VS2013 Pro Update 3の両方で作業中)

23
Jaws

このブログを参照してください。推奨される方法は、対応するNuGetパッケージを更新することです。

http://blogs.msdn.com/b/webdev/archive/2014/10/16/Microsoft-asp-net-mvc-security-update-broke-my-build.aspx

引用するには:

この問題は、次の解決策のいずれかを実装することで解決できます。

  1. (推奨)NuGetギャラリーからMicrosoft.AspNet.Mvcをインストールします(これにより、web.configにバインディングリダイレクトがインストールされます)。これは、NuGetパッケージマネージャーまたはVisual Studio内のNuGetコンソールから実行できます。

    インストールパッケージMicrosoft.AspNet.Mvc -Version -Project PROJECTNAME

    MVC 4バージョン:4.0.40804.0

    MVC 3バージョン:3.0.50813.1

  2. System.Web.MVC.dllへの参照を手動で更新します(GACの参照は使用しないでください)。

    [参照の追加]-> [アセンブリ]-> [拡張機能]ダイアログボックスを試してください。

21

これを参照してください: Microsoft Asp.Net MVC Security Update MS14-059は私のビルドを壊しました! MSは明らかに多くの混乱をもたらしたのでそれについてブログを書きました

8
e4rthdog

Webプロジェクトの場合、web.configの構成も更新する必要があります。

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.1"/>
  </dependentAssembly>
3
THN

はい、

私にとっては、2つの簡単なステップでした。

最初に、System.Web.Mvcへのすべての参照を4.0.0.0から4.0.0.1に変更し、

次に、System.Web.Mvcのプロパティに移動し(おそらく削除して再追加したため)、ローカルコピーをtrueに変更する必要がありました。

これが誰かに役立つことを願っています。

1
edencorbin

ソリューション内のSystem.Web.Mvcへのすべての参照を変更する必要があります。それらを削除して、新しい4.0.0.1バージョンを追加するだけです。

また、プロパティでcopy localをtrueに変更します。

また、web.configで、mvcの新しいバージョンを指すassamblyバインディングを追加します。

    <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-4.0.0.1" newVersion="4.0.0.1" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
1
Robert Benyi

@Krzysztofソリューションまたは上記の他の回答のいずれかを試しても同じエラーが引き続き発生する場合は、uninstallMVCランタイム4.

0
Ricardo Sanchez