我正在尝试bin部署一个MVC4应用程序并遇到一个让我非常困惑的问题。
我在IIS6中有一个网站条目,目前正在运行MVC3应用程序。我正在尝试部署的新应用程序被设置为它下面的虚拟目录。
当您浏览应用程序时,它会抛出此错误:
无法加载文件或程序集'System.Web.Helpers,版本= 1.0.0.0 , Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个 依赖。定位程序集的清单定义没有 匹配程序集引用。 (HRESULT异常:0x80131040)
新应用程序中的bin文件夹包含以下文件:
System.Web.Helpers.dll 版本2.0.20710.0
该错误似乎表明应用程序正在尝试加载程序集的1.0版本,并获取版本2.0文件,导致它与清单不匹配一起抛出。
我不明白为什么它会尝试首先加载版本1.0文件。我可能错了。
有没有人见过这个,或者可以提出解决方法的建议?
答案 0 :(得分: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>