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

时间:2012-12-18 22:37:19

标签: c# asp.net .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

这是错误日志

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.

我已经使用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>

由于

18 个答案:

答案 0 :(得分:82)

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


1 :您可以在Calling assembly中找到文件名。因此,删除calling assembly的所有DotNetOpenAuth.Core应该对您有用。这种方法适用于其他未使用的缺失参考文献。

答案 1 :(得分:75)

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

从项目文件夹中删除obj和bin文件夹,清理解决方案并重建它。

希望有所帮助。

答案 2 :(得分:22)

我在将bin deploy部署MVC应用程序时看到了这种情况。右键单击项目并选择Add deployable dependencies如果选中ASP .NET Webpages with Razor syntax旁边的框,VS将添加对Oauth的引用。

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

答案 3 :(得分:16)

在我的情况下,MVC4应用程序在VS2012调试器中正常运行,但是我得到的是#34;无法加载文件或程序集&#39; DotNetOpenAuth.Core&#39;&#34;我在服务器上发布应用程序时出错。

检查&#34;在发布之前删除所有现有文件&#34; “发布Web”窗口的“设置”选项卡上的复选框解决了该问题。

File System Publishing Settings

答案 4 :(得分:11)

我通过使用Nuget

安装软件包解决了这个问题
Install-Package Microsoft.AspNet.WebPages.OAuth

答案 5 :(得分:3)

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

答案 6 :(得分:3)

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

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

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

  2. 安装包DotNetOpenAuth.AspNet

  3. 安装包Microsoft.AspNet.WebHelpers
  4. 希望这对你有所帮助!!!

答案 7 :(得分:1)

我没有评论的声誉,但我可以证实我有这个确切的问题,杰克为我提供了正确的解决方案。我最近按下了添加服务参考,它使用上面的错误消息打破了程序。

删除_bin_deployableAssemblies文件夹和应用程序的bin文件夹,然后清理并重建应用程序,使其再次运行。

答案 8 :(得分:1)

对我来说,它的效果如下,使用打包管理器控制台,我按照以下顺序卸载软件包,然后重新安装它,它解决了我的问题..

  

卸载

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

构建,如果您没有使用上述软件包,那么这应该可以解决问题,如果您需要,请再次安装以上软件包,请执行以下操作。

  

重新安装

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

建议报告:

  • 转到项目的bin文件夹,清除它
  • 何时发布到IIS,删除虚拟目录并再次将网站分配给IIS,因为我遇到了在服务器上有现金的问题......

答案 9 :(得分:1)

另一个解决方案选项是如下所示具有程序集依赖性:

<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>

答案 10 :(得分:0)

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

答案 11 :(得分:0)

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

答案 12 :(得分:0)

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

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

答案 13 :(得分:0)

我在这里遇到了同样的问题。 我发布的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>

刚刚添加并且有效。

答案 14 :(得分:0)

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

答案 15 :(得分:0)

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

答案 16 :(得分:0)

在更新我们所有的库时,我遇到了这个问题。此链接帮助我解决了此问题。 https://www.devexpress.com/Support/Center/Question/Details/Q554890/the-could-not-load-file-or-assembly-dotnetopenauth-core-version-4-0-0-0-error-message-is

我特别将这些绑定重定向添加到了我的web.config文件中。

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

答案 17 :(得分:-2)

删除项目中的所有Microsoft.Web.WebPages.OAuth依赖项。