0

MVC4 アプリケーションを bin デプロイしようとしていますが、かなり混乱した問題に遭遇しました。

現在 MVC3 アプリケーションを実行している IIS6 に Web サイト エントリがあります。展開しようとしている新しいアプリケーションは、その下に仮想ディレクトリとしてセットアップされています。

アプリケーションを参照すると、次のエラーがスローされます。

ファイルまたはアセンブリ 'System.Web.Helpers, Version=1.0.0.0 , Culture=neutral, PublicKeyToken=31bf3856ad364e35' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)

新しいアプリケーションの bin フォルダーには、次のファイルがあります。

System.Web.Helpers.dllバージョン 2.0.20710.0

このエラーは、アプリケーションがアセンブリのバージョン 1.0 をロードしようとしており、バージョン 2.0 のファイルを取得しようとしているために、マニフェストの不一致がスローされることを示しているようです。

私が理解していないのは、最初にバージョン 1.0 ファイルをロードしようとする理由です。私は間違っているかもしれません。

誰かがこれを以前に見たことがありますか、または解決するためのアドバイスを提供できますか?

4

1 に答える 1

0

これらのバインディング リダイレクトを追加すると、問題が解決されました。

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
</runtime>
于 2013-10-07T19:51:55.630 に答える