我创建了我的第一个MVC 4项目,它在本地服务器上运行良好。但是当我将它发布到本地文件夹并将文件夹内容上传到托管服务器时。我尝试运行它,我收到此错误:
无法加载文件或程序集'DotNetOpenAuth.Core,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 2780ccd10d57b246'或其依赖项之一。该系统找不到指定的文件。 有人可以帮我吗?
的Web.config:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" />
<bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780ccd10d57b246" />
<bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
<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>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-1.3.0.0" newVersion="1.3.0.0" />
</dependentAssembly>
</assemblyBinding>
P.S Web窗体中的相同项目适用于托管服务器。
答案 0 :(得分:54)
<dependentAssembly>
<assemblyIdentity name="YourDllFile" publicKeyToken="2780ccd10d57b246" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-YourDllFileVersion" newVersion="YourDllFileVersion" />
</dependentAssembly>
答案 1 :(得分:3)
答案 2 :(得分:2)
如果您的解决方案包含两个彼此交互且两个使用相同引用的项目,并且如果两个项目中相应引用的版本不同;然后也发生了这样的错误。继续更新所有对最新引用的引用。
答案 3 :(得分:1)
我遇到了同样的问题,NuGet 包版本与项目中引用的版本不同。我不得不更改配置中的版本以匹配项目引用中的版本。转到参考 --> 右键单击导致问题的 dll 文件 --> 选择属性 --> 检查版本 --> 将属性中的版本与 Web 配置相匹配。这应该可以解决问题。
答案 4 :(得分:0)
将以下dll文件添加到bin文件夹:
DotNetOpenAuth.AspNet.dll
DotNetOpenAuth.Core.dll
DotNetOpenAuth.OAuth.Consumer.dll
DotNetOpenAuth.OAuth.dll
DotNetOpenAuth.OpenId.dll
DotNetOpenAuth.OpenId.RelyingParty.dll
如果您不需要它们,请从名为“DotNetOpenAuth.Core”的配置中删除dependentAssemblies
等。
答案 5 :(得分:0)
试试这个:
true
...当我遇到同样的问题时,为我工作。
答案 6 :(得分:0)
检查任何项目是否正在使用/引用具有HRESULT:0x80131040错误的项目。如果是,请检查这些项目是否引用了相似的.dll,并且版本是否相同。如果它们的版本号不同,则将导致上述错误。
答案 7 :(得分:0)
我对 itextsharp 和 itextsharp.xmlworker dll 的异常-from-hresult-0x80131040 有问题,所以我从引用中删除了这两个 dll 并直接从 nuget 包下载了新的 dll,这解决了我的问题。
也许这种方法可以帮助其他人解决问题。