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

在启动 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.

我已经用打包器管理器从 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>

谢谢

103206 次浏览

尝试对值“2780ccd10d57b246”进行全局解决方案搜索(如果没有更改,则为 ctrl + shift + f)。我猜你会在 web.config 中找到它。

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


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

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

要解决这个问题,删除 _bin_deployableAssemblies文件夹和应用程序的 bin文件夹,然后清理和重建应用程序,它将再次工作。

我也遇到过类似的问题。这真的很奇怪,因为前一天这个项目还运行良好。

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

希望能帮上忙。

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

在我的例子中,MVC4应用程序在 VS2012调试器中运行良好,但是我得到了“无法加载文件或程序集‘ DotNetOpenAuth”。在服务器上发布应用程序时出现“ Core’”错误。

在“发布 Web”窗口的“设置”选项卡上选中“在发布前删除所有现有文件”复选框解决了这个问题。

File System Publishing Settings

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

Install-Package Microsoft.AspNet.WebPages.OAuth

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

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

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

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

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

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

  2. 安装包

  3. 安装-包 Microsoft.AspNet.WebHelpers

希望这对你有帮助! ! !

我没有评论的声誉,但我可以证实,我有这个确切的问题,杰克给了我正确的解决方案。我最近按了 AddServiceReference,它用上面的错误消息中断了程序。

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

我也得到了这个错误,但是在一个 ASP.NET MVC 5项目中。我通过安装 PackageDotNetOpenAuth 解决了这个问题。并调用 AsActionResultMvc5()而不是 AsActionResult ()

for me, it worked like the following, using packager manager console, I've uninstall the packages, by the following order sequence and I re installed it, it solved my issue..

正在卸载

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, If you are not using the above packages then this should solve the problem, to Install the above again in case you need it, do the following..

重新安装

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,因为我面临的问题,有现金在服务器,使问题..。

只需在发布设置中选择“删除目标附加文件”即可。 这对我有用

对于我来说,帮助添加到 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 来解决这个问题

我在更新我们所有的图书馆时遇到了这个问题。这个链接帮助我解决了这个问题。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>