파일 또는 어셈블리 'DotNetOpenAuth.Core를로드 할 수 없습니다.


83

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>

감사

답변:


82

OAuth를 사용하지 않으려면 WebPages OAuth DLL ( Microsoft.Web.WebPages.OAuth.dll 1 ) 및 DotNetOpenAuth DLL 모두 참조를 제거하십시오 .


1 : 파일 이름은 Calling assembly. 그래서, 모든 제거 calling assembly의 것은 DotNetOpenAuth.Core당신을 위해 작동합니다. 이 접근 방식은 사용되지 않는 다른 누락 된 참조에 대해 작동합니다.


1
대부분의 참조가 DotNetOpenAuth로 시작되었으므로 참조 이름 Microsoft.Web.WebPages.OAuth.dll을 보는 것이 도움이되었습니다. 그것은 나를 위해 문제를 해결하는 데 도움이되었습니다. 감사합니다 Ian Li
Catto

77

비슷한 문제가있었습니다. 프로젝트가 하루 전에 정상적으로 실행되고 있었기 때문에 정말 이상했습니다.

프로젝트 폴더에서 obj 및 bin 폴더를 제거하고 솔루션을 정리하고 다시 빌드했습니다.

도움이되기를 바랍니다.


2
이것은 이미 bin / obj 폴더에있는 oauth 관련 DLL을 제거하여 작동했을 것입니다. 참조를 제거하고 재 구축해도 문제가되는 파일은 제거되지 않지만 디렉토리는 제거됩니다.
Michael Haren 2013 년

5
같은 문제가 발생하면 oauth dll이 추가되었지만 DotNetOauth dll이 추가되지 않았습니다. 정리가 작동하지 않았고 bind 및 obj 폴더를 수동으로 삭제하면 작동합니다. 이 작지만 Visual Studio의 응용 프로그램 중단 문제가 신경 쓰이기 시작했습니다.
Moulde 2013 년

2
동일한 문제가 있으며 해당 폴더를 삭제해도 작동하지 않습니다. 나는 청소, 삭제 및 솔루션을 재 구축하고 문제가 남아
chiapa

이 oauth 라이브러리는 webactivator를 사용하여 초기화하므로 참조를 제거하는 것만으로는 충분하지 않습니다. 라이브러리는 bin 폴더에서 제거해야합니다 (webactivator는로드 된 폴더의 dll 파일을 열거합니다)
Mel

치아 파처럼 나도 같은 문제가 있었다. bin과 obj를 삭제하고 청소하고 다시 구입했지만 문제는 남아 있습니다. 하지만 Visual Studio를 다시 시작했고 작동했습니다 .
wha7ever

22

MVC 응용 프로그램을 bin deploy. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Add deployable dependenciesVS를 선택 하면 옆에있는 확인란을 선택하면 Oauth에 대한 참조가 추가됩니다 ASP .NET Webpages with Razor syntax.

이 문제를 해결하려면 폴더와 _bin_deployableAssemblies응용 프로그램의 bin폴더를 삭제 한 다음 응용 프로그램 을 정리하고 다시 빌드하면 다시 작동합니다.


1
MSDN-Project Silk를 실행하려고했습니다. 위의 단계는 문제를 해결하기 위해 나를 도와
dekdev

1
전체 _bin_deployableAssemblies 폴더를 삭제하는 대신 거기에서 Microsoft.Web.WebPages.OAuth 파일을 제거하는 것만으로도 충분했습니다. (물론, 깨끗하고 또한 필요했던 재 구축뿐만 아니라, 대상 게시 폴더를 청소)
Jerther

16

제 경우에는 MVC4 응용 프로그램이 VS2012 디버거에서 제대로 실행되었지만 서버에 응용 프로그램을 게시 할 때 "파일 또는 어셈블리 'DotNetOpenAuth.Core'를로드 할 수 없습니다."라는 오류가 발생했습니다.

웹 게시 창의 설정 탭에서 "게시하기 전에 모든 기존 파일 삭제"확인란을 선택하면 문제가 해결되었습니다.

파일 시스템 게시 설정


3
이것은 Azure에 업로드하고 체크 상자 레이블이 '대상에서 추가 파일 제거'였지만 내 문제를 해결했습니다.
Adrian Smith

실제로 게시하기 전에 모든 기존 파일을 삭제하십시오. 감사!
Andrzej Gis 2013 년

12

Nuget을 사용하여 패키지를 설치하여 문제를 해결했습니다.

Install-Package Microsoft.AspNet.WebPages.OAuth

4

게시 설정에서 "대상에서 추가 파일 제거"를 선택하기 만하면됩니다. 이것은 나를 위해 작동합니다


1
이렇게 쉬운 솔루션은 1k upvotes를 가져야합니다! 3 일 동안 애저에 게시하려고 애 쓰고 있습니다.
saiyancoder 2014 년

3

다음 두 패키지를 설치하여 VS2012 Professional Update 4 RC에서이 문제를 해결했습니다.

  1. 메뉴에서 패키지 관리자 콘솔을 엽니 다.

    도구 | 도서관 패키지 관리 | 패키지 관리자 콘솔

  2. 설치 패키지 DotNetOpenAuth.AspNet

  3. 설치 패키지 Microsoft.AspNet.WebHelpers

이것이 당신을 위해 도움이되기를 바랍니다 !!!


2

'2780ccd10d57b246'값에 대해 글로벌 솔루션 검색 (변경하지 않은 경우 Ctrl + Shift + f)을 시도하십시오. web.config에서 찾을 수있을 거라고 생각합니다.


이게 문제입니다 ... 참조가 없습니다. 찾기 모든 "2780ccd10d57b246", 하위 폴더, 찾기 결과 1, 전체 솔루션 ","매칭 라인 : 0 매칭 파일 : 0 총 파일 검색 : 182
디 마스 롱고

6
프로젝트에서 DotNetOpenAuth * 제거를 완료하는 가장 좋은 방법은 무엇입니까? 임시 디렉토리를 삭제하고 bin 및 obj 폴더를 제외하고 솔루션을 다시 빌드하고 packager 관리자 콘솔을 사용하여 모든 OpenAuth 및 OpenID 패키지를 제거했습니다. 지금 무엇을해야할지 모르겠습니다. DotNetOpenAuth를 완전히 제거하여 인터넷 검색도 가능합니다. 유용한 결과가 없습니다.
Dimas Longo

2

나를 위해, 그것은 패키지 관리자 콘솔을 사용하여 다음과 같이 작동했습니다. 다음 순서대로 패키지를 제거하고 다시 설치하여 문제를 해결했습니다 ..

제거

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에 다시 할당합니다. 문제를 일으키는 서버에 현금이 있다는 문제에 직면했기 때문입니다.

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>

여기에 내용을 추가하십시오
SSP

링크 전용 답변을 게시하지 마십시오. 답변의 링크에서 관련 정보를 작성하십시오.
Sumurai8

이 링크가 질문에 답할 수 있지만 여기에 답변의 필수 부분을 포함하고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 무효화 될 수 있습니다.
Kamil Budziewski

1

나는 논평 할만한 평판이 없지만 나는이 정확한 문제가 있었고 Jack이 나에게 올바른 해결책을 주었다는 것을 확인할 수 있습니다. 최근에 서비스 참조 추가를 눌렀는데 위의 오류 메시지와 함께 프로그램이 중단되었습니다.

_bin_deployableAssemblies 폴더와 애플리케이션의 bin 폴더를 삭제 한 다음 애플리케이션을 정리하고 다시 빌드하면 다시 작동합니다.


0

이것이 누구에게나 도움이되는 경우-Nuget을 통해 DotNetOpenAuth 구성 요소를 제거 할 수 없었으므로 참조 목록에서 직접 삭제 한 다음 nuget을 통해 dotnetopenauth를 다시 설치하여이 오류를 해결했습니다.


0

이 오류도 발생했지만 ASP.NET MVC 5 프로젝트가 있습니다. 패키지 DotNetOpenAuth.Mvc5를 설치하고 AsActionResult () 대신 AsActionResultMvc5 ()를 호출하여 문제를 해결했습니다.


0

나를 위해 csproj 파일에 다음 섹션을 추가하는 데 도움이되었습니다.

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

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>

방금 추가했고 작동했습니다.


0

wwwroot에서 BIN 폴더를 제거하고 다시 게시하기 만하면됩니다.



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- 메시지는 .

특히 이러한 바인딩 리디렉션을 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>

-2

프로젝트의 모든 곳에서 Microsoft.Web.WebPages.OAuth 종속성을 제거합니다.


위의 최상위 응답에서 Microsoft.Web.WebPages.OAuth.dll
felickz 2013 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.