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

当我启动我的aspnetworkingmvc 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 

这是错误日志

 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. 

我已经使用packagerpipe理器删除了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> 

谢谢

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


1 :您可以在Calling assembly集中find文件名。 因此,删除DotNetOpenAuth.Core所有calling assembly应该为你工作。 这种方法应该适用于其他未使用的缺失引用。

我有类似的问题。 这个项目在一天之前运行的确很奇怪。

从项目文件夹中删除obj和bin文件夹,清理解决scheme并重build它的工作。

希望有所帮助。

在部署MVC应用程序时,我已经看到了这种情况。 当你右键点击一个项目,并selectAdd deployable dependencies VS将添加对Oauth的引用,如果你检查ASP .NET Webpages with Razor syntax旁边的框。

要解决这个问题,请删除_bin_deployableAssemblies文件夹和应用程序的bin文件夹,然后清理并重新生成应用程序,它将再次运行。

在我的情况下,MVC4应用程序在VS2012debugging器中运行良好,但当我在服务器上发布应用程序时,出现“无法加载文件或程序集”DotNetOpenAuth.Core“”错误。

检查“发布Web窗口”设置选项卡上的“删除发布之前的所有现有文件”checkbox可解决此问题。

文件系统发布设置

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

 Install-Package Microsoft.AspNet.WebPages.OAuth 

通过安装以下两个软件包,我在VS2012 Professional Update 4 RC上解决了这个问题:

  1. 从菜单打开包pipe理器控制台:

    工具| 库包pipe理| 包pipe理器控制台

  2. 安装包DotNetOpenAuth.AspNet

  3. 安装程序包Microsoft.AspNet.WebHelpers

希望这对你有帮助!

只需在发布设置中select“在目的地删除其他文件”。 这对我有用

尝试对值“2780ccd10d57b246”进行全局解决schemesearch(ctrl + shift + f,如果未更改)。 我猜你会在你的web.config中find它。

另一个解决scheme选项是具有程序集依赖关系,如下所示:

 <dependentAssembly> <assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780ccd10d57b246" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" /> </dependentAssembly> 

我没有评论的声誉,但我可以证实我有这个确切的问题,杰克给我正确的解决scheme。 我最近按了添加服务引用,它打破了上述错误信息的程序。

删除_bin_deployableAssemblies文件夹和应用程序的bin文件夹,然后清理并重新生成应用程序使其再次工作。

对我来说,它的工作方式如下,使用packagerpipe理器控制台,我已经卸载软件包,按照下面的顺序,我重新安装它,它解决了我的问题..

卸载

 Uninstall-Package Microsoft.AspNet.WebPages.OAuth Uninstall-Package DotNetOpenAuth.AspNet Uninstall-Package DotNetOpenAuth.OpenId.RelyingParty Uninstall-Package DotNetOpenAuth.OpenId.Core Uninstall-Package DotNetOpenAuth.OAuth.Consumer Uninstall-Package DotNetOpenAuth.OAuth.Core Uninstall-Package DotNetOpenAuth.core 

build立,如果你没有使用上述包,那么这应该解决这个问题,安装上面的情况下,以防万一你需要它,执行以下操作。

重新安装

 install-Package DotNetOpenAuth.AspNet install-Package Microsoft.AspNet.WebPages.OAuth install-Package DotNetOpenAuth.OpenId.RelyingParty install-Package DotNetOpenAuth.OpenId.Core install-Package DotNetOpenAuth.OAuth.Consumer install-Package DotNetOpenAuth.OAuth.Core install-Package DotNetOpenAuth.core 

build议报告:

  • 去项目的b​​in文件夹,清除它
  • 什么时候发布到IIS,删除虚拟目录,并再次将网站分配给IIS,因为我面临的问题是有现金在服务器是造成问题…

如果这有助于任何人 – 我无法通过Nuget卸载DotNetOpenAuth组件,所以我解决了这个错误,直接从参考列表中删除它们,然后通过nuget重新安装dotnetopenauth。

我也得到这个错误,但与ASP.NET MVC 5项目。 我通过安装Package DotNetOpenAuth.Mvc5并调用AsActionResultMvc5()而不是AsActionResult()来解决这个问题。

对于我帮助添加到csproj文件的以下部分:

 <PropertyGroup> <PostSharpHostConfigurationFile>web.config</PostSharpHostConfigurationFile> </PropertyGroup> 

我在这里有同样的问题。 我发布的web.config没有行:

  <dependentAssembly> <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" /> <bindingRedirect oldVersion="1.0.0.0-4.1.0.0" newVersion="4.1.0.0" /> </dependentAssembly> 

刚刚添加,它的工作。

只需从wwwroot中删除BIN文件夹,然后重新发布。

我能够通过删除Microsoft.AspNet.Membership.OpenAuth解决它

删除项目中任何地方的任何Microsoft.Web.WebPages.OAuth依赖项。