ASP.Net MVC 3セキュリティのアップグレードにより、プログラムセットが3.0.0.0から3.0.0.1に変更されました.
2242 ワード
従来、MVC 3アプリケーションの開発は、導入時に便利のため、ユーザー環境にMVC 3をインストールするのではなく、使用したいくつかのassemblyをbinに直接導入してきた. Microsoft.Web.Infrastructure.dll System.Web.Helpers.dll System.Web.MVC.dll System.Web.WebPages.Deployment.dll System.Web.WebPages.dll System.Web.WebPages.Razor.dll
最近システムがアップグレードして、このようにウェブサイトを配置する時、使いにくいことを発見して、間違いを報告します:
Compiler Error Message: CS1705: Assembly 'TestUnsafe, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' uses 'System.Web.Mvc, Version=3.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
気づいたか?System.Web.MVCのバージョンは3.0.0.1が要求されていますが、binには3.0.0.0が入っていて、走れないに違いありません.OK、新しいプログラムセットに変えて、System.Web.MVC.dll 3.0.0.1版は載せて、依然として走ることができなくて、間違いを報告します:
Parser Error Message: Could not load file or assembly 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
これはWeb.configが更新されていないため、次の行が見つかりました.
oldVersionとnewVersionを調整し、次のように変更します.
見たか?旧バージョンのMVCを3.0.0.1版に統一的にマッピングします.サイトに再アクセスして、すべて正常になりました.
最近システムがアップグレードして、このようにウェブサイトを配置する時、使いにくいことを発見して、間違いを報告します:
Compiler Error Message: CS1705: Assembly 'TestUnsafe, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' uses 'System.Web.Mvc, Version=3.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
気づいたか?System.Web.MVCのバージョンは3.0.0.1が要求されていますが、binには3.0.0.0が入っていて、走れないに違いありません.OK、新しいプログラムセットに変えて、System.Web.MVC.dll 3.0.0.1版は載せて、依然として走ることができなくて、間違いを報告します:
Parser Error Message: Could not load file or assembly 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
これはWeb.configが更新されていないため、次の行が見つかりました.
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
oldVersionとnewVersionを調整し、次のように変更します.
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
見たか?旧バージョンのMVCを3.0.0.1版に統一的にマッピングします.サイトに再アクセスして、すべて正常になりました.