无法加载文件或程序集'DotNetOpenAuth.Core

Dim*_*ngo 82 .net c# asp.net asp.net-mvc asp.net-mvc-4

当我启动我的asp net mvc 4应用程序时出现以下错误:

Could not load file or assembly 'DotNetOpenAuth.Core, Version=4.0.0.0, 
Culture=neutral, PublicKeyToken=2780ccd10d57b246' or one of its dependencies. 
The system cannot find the file specified
Run Code Online (Sandbox Code Playgroud)

这是错误日志

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable  C:\Windows\SysWOW64\inetsrv\w3wp.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = notebook\Guilherme
LOG: DisplayName = DotNetOpenAuth.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246
 (Fully-specified)
LOG: Appbase = file:///C:/Users/Guilherme/Documents/Visual Studio 2012/Projects/Gedi/Gedi/
LOG: Initial PrivatePath = C:\Users\Guilherme\Documents\Visual Studio 2012\Projects\Gedi\Gedi\bin
Calling assembly : Microsoft.Web.WebPages.OAuth, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Users\Guilherme\Documents\Visual Studio 2012\Projects\Gedi\Gedi\web.config
LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: DotNetOpenAuth.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/2635bb56/154c3fbb/DotNetOpenAuth.Core.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/2635bb56/154c3fbb/DotNetOpenAuth.Core/DotNetOpenAuth.Core.DLL.
LOG: Attempting download of new URL file:///C:/Users/Guilherme/Documents/Visual Studio 2012/Projects/Gedi/Gedi/bin/DotNetOpenAuth.Core.DLL.
LOG: Attempting download of new URL file:///C:/Users/Guilherme/Documents/Visual Studio 2012/Projects/Gedi/Gedi/bin/DotNetOpenAuth.Core/DotNetOpenAuth.Core.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/2635bb56/154c3fbb/DotNetOpenAuth.Core.EXE.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/2635bb56/154c3fbb/DotNetOpenAuth.Core/DotNetOpenAuth.Core.EXE.
LOG: Attempting download of new URL file:///C:/Users/Guilherme/Documents/Visual Studio 2012/Projects/Gedi/Gedi/bin/DotNetOpenAuth.Core.EXE.
LOG: Attempting download of new URL file:///C:/Users/Guilherme/Documents/Visual Studio 2012/Projects/Gedi/Gedi/bin/DotNetOpenAuth.Core/DotNetOpenAuth.Core.EXE.
Run Code Online (Sandbox Code Playgroud)

我已经使用packager manager删除了DotNetOpenAuth的所有引用.此外,我通过自我参考检查了我在项目中的每个Auth程序集,但没有.

这是我的packages.config

<packages>
  <package id="AutoMapper" version="2.2.0" targetFramework="net45" />
  <package id="EntityFramework" version="5.0.0" targetFramework="net45" />
  <package id="jQuery" version="1.7.1.1" targetFramework="net45" />
  <package id="jQuery.UI.Combined" version="1.8.20.1" targetFramework="net45" />
  <package id="jQuery.Validation" version="1.9.0.1" targetFramework="net45" />
  <package id="knockoutjs" version="2.1.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.Mvc" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.Razor" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.Web.Optimization" version="1.0.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.Client" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.Core" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.WebHost" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebPages" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebPages.Data" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebPages.WebData" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.jQuery.Unobtrusive.Ajax" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.jQuery.Unobtrusive.Validation" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.Net.Http" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
  <package id="Modernizr" version="2.5.3" targetFramework="net45" />
  <package id="Newtonsoft.Json" version="4.5.11" targetFramework="net45" />
  <package id="Repository" version="1.0.2.12" targetFramework="net45" />
  <package id="RestSharp" version="103.4" targetFramework="net45" />
  <package id="WebGrease" version="1.1.0" targetFramework="net45" />
</packages>
Run Code Online (Sandbox Code Playgroud)

谢谢

Ian*_* Li 82

如果您不想使用OAuth,请删除引用:WebPages OAuth DLL(我认为它是Microsoft.Web.WebPages.OAuth.dll 1)和DotNetOpenAuth DLL.


1:您可以在中找到文件名Calling assembly.所以,清除所有calling assemblyDotNetOpenAuth.Core应该为你工作.此方法适用于其他未使用的缺失引用.


小智 76

我有类似的问题.这个项目在前一天运行正常,这真的很奇怪.

从项目文件夹中删除obj和bin文件夹,清理解决方案并重建它是有效的.

希望有所帮助.

  • 这对我有用,而接受的答案却没有. (10认同)
  • 有同样的问题,添加了oauth dll,但没有添加DotNetOauth dll.清理没有工作,手动删除绑定和obj文件夹工作.视觉工作室中这些小而重要的应用程序问题开始让我感到紧张. (5认同)
  • 这可能是通过清除已经在bin/obj文件夹中的与oauth相关的DLL来实现的.删除引用和重建不会删除有问题的文件,但会删除目录. (2认同)
  • 我有同样的问题,删除这些文件夹不起作用.我删除它们,清理并重建解决方案,问题仍然存在 (2认同)

小智 22

我已经看到在部署MVC应用程序时会发生这种情况bin deploy.当您右键单击项目并选择Add deployable dependenciesVS时,如果选中旁边的框,则会添加对Oauth的引用ASP .NET Webpages with Razor syntax.

要解决此问题,请删除该_bin_deployableAssemblies文件夹和应用程序的bin文件夹,然后清理并重建您的应用程序,它将再次运行.

  • 感谢男人,这有几个小时的头部刮伤 (2认同)

mit*_*aka 16

在我的情况下,MVC4应用程序在VS2012调试器中正常运行,但是当我在服务器上发布应用程序时,我收到"无法加载文件或程序集'DotNetOpenAuth.Core'"错误.

选中"发布Web"窗口的"设置"选项卡上的"删除发布前删除所有现有文件"复选框解决了该问题.

文件系统发布设置

  • 这解决了我的问题,虽然我上传到Azure并且勾选框标签是"删除目的地的其他文件". (3认同)

mLa*_*Lar 11

我通过使用Nuget安装包解决了这个问题

Install-Package Microsoft.AspNet.WebPages.OAuth
Run Code Online (Sandbox Code Playgroud)