2

HtmlHelperExtensionsとライブラリを共有するMVC3を使用するWebアプリケーションがあります。

MVCアセンブリを参照する必要があるこの共有ライブラリを、既存のアプリケーションを変換したり、共有ライブラリを複製したりせずに、MVC4アプリケーションでも機能させる方法はありますか?

共有ライブラリのMVC参照をSpecificVersion=falseに設定しようとしましたが、MVC4に切り替わり、MVC3プロジェクトはそれを使用できなくなりました。

MVC3アセンブリとMVC4アセンブリを並べて使用しようとすると、未処理のwin32例外が発生します。

これを解決する方法はありますか、それとも完全なMVC4に移行するか、MVC3にとどまる唯一の方法ですか?ありがとう

4

1 に答える 1

1

ASP.NETMVC4アプリケーションのweb.configでバインディングリダイレクトを使用できます。

<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="1.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>

これで、ASP.NET MVC 4アプリケーションでカスタムヘルパー(ASP.NET MVC 3に依存)を含むアセンブリを参照できます。

于 2013-03-25T13:53:23.633 に答える