Không thể tải tệp hoặc lắp ráp 'DotNetOpenAuth.Core


83

Tôi gặp lỗi sau khi khởi động ứng dụng asp net mvc 4 của mình:

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

Đây là nhật ký lỗi

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.

Tôi đã xóa tất cả các tham chiếu khỏi DotNetOpenAuth bằng trình quản lý gói. Ngoài ra, tôi đã tự kiểm tra các tham chiếu của mình cho mọi assembly Auth mà tôi có trong dự án của mình và không có.

Đây là package.config của tôi

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

Cảm ơn

Câu trả lời:


82

Nếu bạn không muốn sử dụng OAuth, hãy xóa tham chiếu: cả DLL OAuth của WebPages (tôi nghĩ đó là Microsoft.Web.WebPages.OAuth.dll 1 ) và DotNetOpenAuth DLL.


1 : Bạn có thể tìm thấy tên tệp trong Calling assembly. Vì vậy, loại bỏ tất cả calling assemblycác DotNetOpenAuth.Corenên làm việc cho bạn. Cách tiếp cận này sẽ hoạt động đối với các tài liệu tham khảo bị thiếu không sử dụng khác.


1
Sẽ rất hữu ích khi xem tên tham chiếu Microsoft.Web.WebPages.OAuth.dll vì hầu hết các tham chiếu đều bắt đầu với DotNetOpenAuth. Điều đó đã giúp giải quyết vấn đề cho tôi. Cảm ơn bạn Ian Li
Thx, Catto

77

Tôi đã có vấn đề tương tự. Nó thực sự kỳ lạ vì dự án đã chạy tốt một ngày trước đó.

Xóa thư mục obj và bin khỏi thư mục dự án, làm sạch giải pháp và xây dựng lại nó hoạt động.

Hy vọng rằng sẽ giúp.


2
Điều này có thể hoạt động bằng cách xóa một DLL liên quan đến oauth đã có trong các thư mục bin / obj của bạn. Xóa tham chiếu và xây dựng lại sẽ không xóa các tệp vi phạm, nhưng sẽ xóa các thư mục.
Michael Haren

5
Gặp vấn đề tương tự, dll oauth đã được thêm vào, nhưng không có dll DotNetOauth nào được thêm vào. Việc dọn dẹp không hoạt động, xóa thủ công các thư mục liên kết và đối tượng hoạt động. Những vấn đề nhỏ nhưng mang tính đột phá ứng dụng này trong studio trực quan đang bắt đầu làm tôi lo lắng.
Moulde

2
Tôi gặp vấn đề tương tự và việc xóa các thư mục đó không hoạt động. Tôi xóa chúng, sạch sẽ và xây dựng lại các giải pháp, và vấn đề còn lại
Chiapa

thư viện oauth này sử dụng webactivator để khởi tạo nên việc xóa các tham chiếu là không đủ, các thư viện phải được xóa khỏi thư mục bin (webactivator liệt kê các tệp dll trong thư mục mà nó đã được tải vào)
Mel

Cũng giống như chiapa, tôi có cùng một vấn đề. Tôi đã xóa bin và obj, làm sạch và khiển trách, nhưng vấn đề vẫn còn. Nhưng sau đó tôi khởi động lại studio trực quan và nó hoạt động .
wha7ever

22

Tôi đã thấy điều này xảy ra khi triển khai ứng dụng MVC dưới dạng bin deploy. Khi bạn nhấp chuột phải vào một dự án và chọn Add deployable dependenciesVS sẽ thêm các tham chiếu vào Oauth nếu bạn chọn hộp bên cạnh ASP .NET Webpages with Razor syntax.

Để khắc phục điều này, hãy xóa _bin_deployableAssembliesthư mục và thư mục ứng dụng của bạn bin, sau đó dọn dẹp và xây dựng lại ứng dụng của bạn và ứng dụng sẽ hoạt động trở lại.


1
Tôi đang cố chạy MSDN - Project Silk. các bước trên đã giúp tôi giải quyết vấn đề
dekdev

1
thay vì xóa toàn bộ thư mục _bin_deployableAssemblies, chỉ cần xóa các tệp Microsoft.Web.WebPages.OAuth từ đó là đủ đối với tôi. (tất nhiên, cũng cần dọn dẹp và xây dựng lại, cũng như làm sạch thư mục xuất bản mục tiêu)
Jerther

16

Trong trường hợp của tôi, ứng dụng MVC4 đang chạy tốt trong trình gỡ lỗi VS2012, nhưng tôi gặp lỗi "Không thể tải tệp hoặc lắp ráp 'DotNetOpenAuth.Core'" khi tôi xuất bản ứng dụng trên máy chủ.

Chọn hộp kiểm "Xóa tất cả các tệp hiện có trước khi xuất bản" trên tab cài đặt của cửa sổ Xuất bản Web đã giải quyết được vấn đề.

Cài đặt xuất bản hệ thống tệp


3
Điều này đã giải quyết được vấn đề của tôi mặc dù tôi đang tải lên Azure và nhãn hộp đánh dấu là 'Xóa tệp bổ sung tại đích'.
Adrian Smith

Xóa tất cả các tệp hiện có trước khi xuất bản thực sự hoạt động. Cảm ơn!
Andrzej Gis

12

Tôi đã giải quyết vấn đề bằng cách cài đặt gói bằng Nuget

Install-Package Microsoft.AspNet.WebPages.OAuth

4

Chỉ cần chọn "Xóa tệp bổ sung tại điểm đến" trên cài đặt xuất bản. Điều này phù hợp với tôi


1
Một giải pháp dễ dàng như vậy nên có 1k lượt ủng hộ! Tôi đã vật lộn với điều này trong ba ngày, cố gắng xuất bản lên Azure.
saiyancoder

3

Bằng cách cài đặt hai gói sau, tôi đã giải quyết sự cố này trên VS2012 Professional Update 4 RC:

  1. Mở Bảng điều khiển Trình quản lý Gói từ Trình đơn:

    Công cụ | Quản lý gói thư viện | Bảng điều khiển Trình quản lý Gói

  2. Gói cài đặt DotNetOpenAuth.AspNet

  3. Gói cài đặt Microsoft.AspNet.WebHelpers

Hy vọng điều này sẽ giúp ích cho bạn !!!


2

Hãy thử thực hiện tìm kiếm giải pháp toàn cục (ctrl + shift + f nếu bạn chưa thay đổi) cho giá trị '2780ccd10d57b246'. Tôi đoán bạn sẽ tìm thấy nó trong web.config của bạn.


Đây là vấn đề ... không có tài liệu tham khảo. Tìm tất cả "2780ccd10d57b246", Thư mục con, Tìm kết quả 1, Toàn bộ lời giải "," Dòng trùng khớp: 0 Tệp phù hợp: 0 Tổng số tệp được tìm kiếm: 182
Dimas Longo

6
Cách tốt nhất để hoàn tất việc xóa DotNetOpenAuth * khỏi dự án của tôi là gì? Tôi đã xóa dir tạm thời, loại trừ thư mục bin và obj, xây dựng lại giải pháp và xóa tất cả các gói OpenAuth và OpenID bằng bảng điều khiển trình quản lý gói ... Tôi không biết phải làm gì bây giờ. Ngoài ra googling bằng cách xóa hoàn toàn DotNetOpenAuth Không có kết quả hữu ích.
Dimas Longo

2

đối với tôi, nó hoạt động như sau, bằng cách sử dụng bảng điều khiển trình quản lý packager, tôi đã gỡ cài đặt các gói, theo trình tự thứ tự sau và tôi đã cài đặt lại nó, nó đã giải quyết được sự cố của tôi ..

Gỡ cài đặt

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

Xây dựng, Nếu bạn không sử dụng các gói trên thì điều này sẽ giải quyết được vấn đề, để Cài đặt lại ở trên trong trường hợp bạn cần, hãy làm như sau ..

Cài đặt lại

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

khuyến cáo:

  • chuyển đến thư mục bin của dự án, xóa nó
  • khi nào xuất bản lên IIS, hãy xóa thư mục ảo và gán lại trang web cho IIS, vì tôi gặp phải vấn đề có tiền mặt trong máy chủ đang gây ra sự cố ...

1

Một tùy chọn giải pháp khác là có sự phụ thuộc lắp ráp như sau:

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

vui lòng thêm nội dung ở đây
SSP

Vui lòng không đăng câu trả lời chỉ có liên kết. Vui lòng viết thông tin liên quan từ liên kết trong câu trả lời của bạn.
Sumurai8

Mặc dù liên kết này có thể trả lời câu hỏi, nhưng tốt hơn hết bạn nên đưa các phần thiết yếu của câu trả lời vào đây và cung cấp liên kết để tham khảo. Các câu trả lời chỉ có liên kết có thể trở nên không hợp lệ nếu trang được liên kết thay đổi.
Kamil Budziewski

1

Tôi không có danh tiếng để bình luận nhưng tôi có thể xác minh rằng tôi đã gặp vấn đề chính xác này và Jack đã đưa ra giải pháp chính xác cho tôi. Gần đây tôi đã nhấn Thêm tham chiếu dịch vụ và nó đã phá vỡ chương trình với thông báo lỗi ở trên.

Xóa thư mục _bin_deployableAssemblies và thư mục bin của ứng dụng, sau đó dọn dẹp và xây dựng lại ứng dụng của bạn để ứng dụng hoạt động trở lại.


0

Trong trường hợp điều này giúp ích cho bất kỳ ai - Tôi không thể gỡ cài đặt các thành phần DotNetOpenAuth thông qua Nuget, vì vậy tôi đã giải quyết lỗi này bằng cách xóa chúng khỏi danh sách tham chiếu trực tiếp và sau đó cài đặt lại dotnetopenauth thông qua nuget.


0

Tôi cũng gặp phải lỗi này, nhưng với một dự án ASP.NET MVC 5. Tôi đã giải quyết nó bằng cách cài đặt Gói DotNetOpenAuth.Mvc5 và gọi AsActionResultMvc5 () thay vì AsActionResult ()


0

Đối với tôi đã giúp thêm vào tệp csproj phần sau:

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

0

Tôi đã có cùng một vấn đề ở đây. Web.config đã xuất bản của tôi không có các dòng:

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

Chỉ cần thêm vào và nó đã hoạt động.


0

Chỉ cần xóa thư mục BIN khỏi wwwroot và xuất bản lại.


0

Tôi đã có thể giải quyết nó bằng cách gỡ bỏ Microsoft.AspNet.Membership.OpenAuth


0

Tôi gặp sự cố này khi cập nhật tất cả các thư viện của chúng tôi. liên kết này đã giúp tôi khắc phục sự cố này. https://www.devexpress.com/Support/Center/Question/Details/Q554890/the-could-not-load-file-or-assembly-dotnetopenauth-core-version-4-0-0-0-error- tin nhắn-là .

Đặc biệt, tôi đã thêm các chuyển hướng ràng buộc này vào tệp web.config của mình.

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

-2

Xóa mọi phụ thuộc Microsoft.Web.WebPages.OAuth ở mọi nơi trong các dự án của bạn.


và Microsoft.Web.WebPages.OAuth.dll từ phản hồi hàng đầu ở trên
felickz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.