我创建了一个新的asp.net mvc 4版本和 包括从Nerddinner项目实施的dotnetopenauth。
使用formsauthentication进行注册和身份验证可以正常工作。上 另一方面,当我包含对于openauth的登录详细信息时 - logonopenid.cshtml - 实现我收到错误:
“无法加载文件或程序集”System.Web.Mvc,Version = 1.0.0.0, Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个 依赖。定位程序集的清单定义没有 匹配程序集引用。 (来自HRESULT的异常:0x80131040)“
来源错误:
Line 38: @MvcHtmlString.Create(Html.OpenIdSelectorScripts(options,
null))
我检查过,我正在使用system.web.mvc version = 4并包含一个 mvchtmlstring和html helpers的定义包括一个定义 对于openidselectorscripts。我真的不知道为什么要求 程序集1.0.0。 任何帮助将不胜感激。 brgds, 塞巴斯蒂安。
答案 0 :(得分:2)
您需要将其添加到您的web.config文件中:
<runtime>
<!-- When targeting ASP.NET MVC 4, this assemblyBinding makes MVC 1 references relink
to MVC 4 so libraries such as DotNetOpenAuth that compile against MVC 1 will work with it. -->
<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="4.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
答案 1 :(得分:1)
sebastian_h,
我之前见过这种情况。 'remote'内存回忆起与位于/ Views文件夹下的web.config中的条目相关的问题(而不是根web.config文件)。
我可能会离开这里,但这会敲响钟声。当然值得快速浏览一下。