2014-10-13 3 views
3

프로젝트를 실행할 때마다 아래 오류가 발생합니다. 이것은 DotNetOpenAuth를 설치 한 시점부터 발생합니다.파일 또는 어셈블리 'DotNetOpenAuth.AspNet'을로드 할 수 없습니다.

Could not load file or assembly 'DotNetOpenAuth.AspNet' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IO.FileLoadException: Could not load file or assembly 'DotNetOpenAuth.AspNet' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Assembly Load Trace: The following information can be helpful to determine why the assembly 'DotNetOpenAuth.AspNet' could not be loaded.

=== Pre-bind state information === LOG: DisplayName = DotNetOpenAuth.AspNet (Partial) WRN: Partial binding information was supplied for an assembly: WRN: Assembly Name: DotNetOpenAuth.AspNet | Domain ID: 2 WRN: A partial bind occurs when only part of the assembly display name is provided. WRN: This might result in the binder loading an incorrect assembly. WRN: It is recommended to provide a fully specified textual identity for the assembly

프로젝트를 만드는 동안 아래 경고가 표시됩니다.

C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1697,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.

여기서 잘못된 점에 대한 정보는 없습니다. 누군가가 문제의 디버깅을 도울 수 있습니까? 나는 이것을 2 일 만에 해결하려고 노력하고있다. 그러나 운이 전혀 없었다.

편집 : 여기에 packages.config - 당신은 그것이 필요한 모든 참조를 설치해야합니다 Nuget 엉 설치 한 경우

<?xml version="1.0" encoding="utf-8"?> 
<packages> 
    <package id="Antlr" version="3.4.1.9004" targetFramework="net45" /> 
    <package id="bootstrap" version="3.2.0" targetFramework="net45" /> 
    <package id="CodeContracts.Unofficial" version="1.0.0.2" targetFramework="net45" /> 
    <package id="DotNetOpenAuth.AspNet" version="4.1.4.12333" targetFramework="net45" /> 
    <package id="DotNetOpenAuth.AspNet" version="4.0.3.12153" targetFramework="net45" /> 
    <package id="DotNetOpenAuth.Core" version="4.1.4.12333" targetFramework="net45" /> 
    <package id="DotNetOpenAuth.Core" version="4.0.3.12153" targetFramework="net45" /> 
    <package id="DotNetOpenAuth.OAuth.Consumer" version="4.1.4.12333" targetFramework="net45" /> 
    <package id="DotNetOpenAuth.OAuth.Consumer" version="4.0.3.12153" targetFramework="net45" /> 
    <package id="DotNetOpenAuth.OAuth.Core" version="4.1.4.12333" targetFramework="net45" /> 
    <package id="DotNetOpenAuth.OAuth.Core" version="4.0.3.12153" targetFramework="net45" /> 
    <package id="DotNetOpenAuth.OpenId.Core" version="4.1.4.12333" targetFramework="net45" /> 
    <package id="DotNetOpenAuth.OpenId.Core" version="4.0.3.12153" targetFramework="net45" /> 
    <package id="DotNetOpenAuth.OpenId.RelyingParty" version="4.1.4.12333" targetFramework="net45"  /> 
    <package id="DotNetOpenAuth.OpenId.RelyingParty" version="4.0.3.12153" targetFramework="net45" /> 
    <package id="jQuery" version="2.1.1" targetFramework="net45" /> 
    <package id="jQuery.UI.Combined" version="1.11.1" targetFramework="net45" /> 
    <package id="jQuery.Validation" version="1.13.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Mvc" version="4.0.30506.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Mvc" version="4.0.20710.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Mvc.FixedDisplayModes" version="1.0.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Razor" version="3.2.2" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Razor" version="2.0.20710.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Web.Optimization" version="1.0.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi" version="4.0.30506.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.Client" version="4.0.30506.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.Core" version="4.0.30506.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.WebHost" version="4.0.30506.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebPages" version="2.0.30506.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebPages" version="2.0.20710.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebPages.Data" version="3.2.2" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebPages.Data" version="2.0.20710.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebPages.OAuth" version="3.2.2" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebPages.OAuth" version="2.0.20710.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebPages.WebData" version="3.2.2" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebPages.WebData" version="2.0.20710.0" targetFramework="net45" /> 
    <package id="Microsoft.jQuery.Unobtrusive.Ajax" version="3.2.2" targetFramework="net45" /> 
    <package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.2" 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="Newtonsoft.Json" version="5.0.4" targetFramework="net45" /> 
    <package id="UpgradeMvc3ToMvc4" version="1.0.1" targetFramework="net45" /> 
    <package id="WebGrease" version="1.5.2" targetFramework="net45" /> 
    <package id="WebGrease" version="1.1.0" targetFramework="net45" /> 
</packages> 

답변

3

을 제공하십시오, 당신은 설치된 각 패키지의 여러 버전이있다. 웹 API 및 MVC와 관련하여 사이트를 정리할 때까지 사이트가 제대로 작동하지 않습니다. 최선의 방법은 Clean을 수행하고 클라이언트 측이 아닌 모든 패키지 (jQuery 및 기타 클라이언트 측 라이브러리를 종료 할 수 있음)를 모두 제거하고 필요한 버전을 다시 추가하는 것입니다. 모두 말하고 완료하면 각 버전마다 1 개의 버전 만 있으면됩니다.

packages.config를 정리하지 않고이 작업을 정말로하고 싶다면 web.config (여기 참조 : http://msdn.microsoft.com/en-us/library/7wd6ex19(v=vs.110).aspx 참조)에서 assemblyRedirection을 설정하고 다른 버전에 대한 모든 요청을 가리킬 수 있습니다.

웹 응용 프로그램의 모든 web.config 파일에서 언급 한 WebPages, MVC 및 WebAPI 버전 참조가 올바른 버전을 참조하는지 확인해야합니다.

+0

나는 중복 dll의 낮은 버전을 주석 처리하고, 패키지 폴더를 정리하고, 다시 설치하고, 참조를 추가했다. 문제가 해결되었지만 지금 또 다른 문제가 있습니다. CSS/Bootstrap/JQuery가 내 사이트에서 작동하지 않는 것 같습니다. 왜 이런 일이 일어나는지 확신 할 수 없습니다. 어떤 아이디어? – Sam

+0

죄송합니다. 내 의견을 편집하여 클라이언트 측 라이브러리를 그대로 두는 것이 좋습니다. 나는 너무 늦었다 고 생각한다. 지금 설치 한 버전을 위에 붙여 넣은 버전과 비교하십시오. 번들링을 사용하여 새 버전을 가리키고있는 경우에는 App_Start 폴더에서 index.cshtml 파일이나 BundleConfig.cs 파일을 편집하면됩니다. 호환성 문제가있는 경우 방금 설치 한 버전을 제거하고 각 패키지에 대해 패키지 관리자 콘솔의 Install-Package 명령 (예 : Install-Package jQuery -Version 2.1.1)을 사용하기 전에 사용한 정확한 버전을 설치할 수 있습니다. – scottt732

+0

BundleConfig.cs는 내가 최근에 한 변경 사항을 망쳤습니다. 이제 jquery, css, bootstrap 라이브러리에 대한 참조를 다시 추가했습니다. 이제는 모두 잘 작동합니다. 고마워요! – Sam

4

가.

더 assistence에 대한 packages.config 파일에 따르면 packages.config에게

+0

Microsoft WebPages OAuth 라이브러리와 함께 설치되었습니다. 위의 packages.congfig를 추가했습니다. Visual Studio 2013을 업데이트하여 3을 업데이트하면 일부 DLL에 대해 여러 버전을 볼 수 있습니다. – Sam

+0

중복 패키지 및 참조를 모두 제거한 다음 Nuget을 사용하여 하나씩 설치하기 시작하십시오. 그게 내가 그것을 해결하려고하는 방법이 될 것입니다. 희망이 도움이됩니다. –

+0

예, 동일했습니다. 이전 버전을 제거하고, 패키지 폴더를 지우고, 누 겟이 누락 된 패키지를 다운로드하도록합니다. 프로젝트가 지금 작동하게하십시오. 감사. – Sam

0

개인적으로 도구> NuGet 패키지 관리자> 솔루션을위한 NuGet 패키지 관리 ...를 수행하고 DotNet *. * 패키지를 업데이트해야했습니다. SVN에서 호스팅되는 그룹 프로젝트는 제가 수행중인 솔루션입니다. 한 사람이 패키지를 업데이트하면 업데이트 될 때까지 다른 사용자에게 영향을 줄 수 있습니다.

관련 문제