2014-09-11 3 views
2

모든 프로젝트에는 json.net 6.0.3 NuGet 패키지가 포함되어 있습니다. 내가 추가 할 때 :Release 빌드의 PostSharp에서 AssemblyLoadException이 발생했습니다.

using Newtonsoft.Json; 

나는 다음과 같은 오류가 발생하면 건물 :

1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : 처리되지 않은 예외 (3.1.48.0, 32 비트, CLR 4.5, 릴리스) : PostSharp.Sdk.CodeModel.AssemblyLoadException : 어셈블리 'newtonsoft.json, 버전 = 4.5.0.0, 문화 = 중립, publickeytoken = 30ad4fe6b2a6aeed'찾을 수 없습니다. [버전 불일치] 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : ============ PostSharp 어셈블리 로딩 로그 ============== ===== 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG : 바인딩 ID 'newtonsoft.json, version = 4.5.0.0, culture = neutral, publickeytoken = 30ad4fe6b2a6aeed'를 사용하여 어셈블리를 찾습니다. 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG : 파일이 'F : \ packages \ Newtonsoft.Json.6.0.3 \ lib \ net45 \ Newtonsoft.Json.dll'인 파일 ' '을 발견했습니다. 'newtonsoft. json, version = 6.0.0.0, culture = neutral, publickeytoken = 30ad4fe6b2a6aeed, processorarchitecture = msil '입니다. 'F : \ packages \ Newtonsoft.Json.6.0.3 \ lib \ net45 \ Newtonsoft.Json.dll'에 대한 불일치가 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 : . 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : 로그 :이 디렉터리가 명시 적으로 추가되었으므로 ''C : \ ProgramData \ PostSharp \ 3.1.48 \ bin.Release \ Newtonsoft.Json.exe ' 검색 경로 [File 찾을 수 없음]. 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG : C : \ ProgramData \ PostSharp \ 3.1.48 \ bin.Release \ Newtonsoft.Json.dll ' 이 위치에 명시 적으로 추가 되었기 때문에 위치를 프로빙 위치를 검색 경로 [File 찾을 수 없음]. 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG : 이 디렉터리가 명시 적으로 추가 되었기 때문에 C : \ ProgramData \ PostSharp \ 3.1.48 \ bin.Release \ Newtonsoft.Json.winmd ' 검색 경로 [File 찾을 수 없음]. 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG : 이 디렉터리가 검색 경로에 명시 적으로 추가 되었기 때문에 'F : \ bin \ release \ TwinkyTalk \ Newtonsoft.Json.exe'위치를 프로빙 '[ 파일이 아닙니다. 녹이다]. 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG : identity 'newtonsoft.json, version = 6.0.0.0, culture로'F : \ bin \ release \ TwinkyTalk \ Newtonsoft.Json.dll '파일을 찾았습니다. = 중립, publickeytoken = 30ad4fe6b2a6aeed, processorarchitecture = msil '. 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG : 'F : \ bin \ release \ TwinkyTalk \ Newtonsoft.Json.dll'에 대한 참조가 일치하지 않습니다. [VersionMismatch]. 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG :이 디렉터리가 명시 적으로 검색 경로에 추가 되었기 때문에 'F : \ bin \ release \ TwinkyTalk \ Newtonsoft.Json.winmd'에 위치 : 녹이다]. 디렉터리가 명시 적으로 검색 경로에 추가 되었기 때문에 'F : \ TwinkyTalk \ obj \ Release \ Newtonsoft.Json.exe'위치에 'F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG : 탐색 중 ' 녹이다]. 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG : Probing 위치 'F : \ TwinkyTalk \ obj \ Release \ Newtonsoft.Json.dll '이 디렉토리가 [File Not Found] 검색 경로에 명시 적으로 추가 되었기 때문입니다. 이 디렉터리가 검색 경로에 명시 적으로 추가 되었기 때문에 'F : \ TwinkyTalk \ obj \ Release \ Newtonsoft.Json.winmd'위치에서 F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG : 프로빙 '파일 없음 발견됨]. 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG : Probing 위치 'C : \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5.1 \ Newtonsoft.Json.exe' 이 디렉토리가 검색 경로 [File 을 찾을 수 없음]에 명시 적으로 추가 되었기 때문입니다. 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG : Probing location 'C : \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5.1 \ Newtonsoft.Json.dll' 이 디렉토리가 검색 경로 [File 을 찾을 수 없음]에 명시 적으로 추가 되었기 때문입니다. 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG : Probing location 'C : \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5.1 \ Newtonsoft.Json.winmd' 이 디렉토리가 검색 경로 [File 을 찾을 수 없음]에 명시 적으로 추가 되었기 때문입니다. 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG : Probing location 'C : \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5.1 \ Facades \ Newtonsoft.Json.exe ' 찾을 수 없음]이 디렉터리가 검색 경로에 명시 적으로 추가 되었기 때문에' '입니다. 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG : Probing location 'C : \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5.1 \ Facades \ Newtonsoft.Json.dll 이 디렉토리가 명시 적으로 검색 경로에 추가 되었기 때문에 ' 은 [파일 을 찾을 수 없습니다]. 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG : Probing location 'C : \ Program Files (x86) \ Reference 어셈블리 \ Microsoft \ Framework.NETFramework \ v4.5.1 \ Facades \ Newtonsoft.Json.winmd ' 찾을 수 없음]이 디렉터리가 검색 경로에 명시 적으로 추가 되었기 때문에' '입니다. 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG : Newtonsoft.Json, 버전 = 4.5.0.0, Culture = 중립, GAC를보고 PublicKeyToken = 30ad4fe6b2a6aeed, processorArchitecture = x86. 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG : GAC에서 Newtonsoft.Json에 대한 , 버전 = 4.5.0.0, culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed, processorArchitecture = msil. 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG : GAC에서 Newtonsoft.Json에 대한 , 버전 = 4.5.0.0, 문화 = 중립 PublicKeyToken = 30ad4fe6b2a6aeed. 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : LOG : 어셈블리 'newtonsoft.json, version = 4.5.0.0, 문화 = 중립, publickeytoken = 30ad4fe6b2a6aeed'찾을 수 없습니다. 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : ================================== ============================= 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : PostSharp.Sdk.CodeModel에서 .Domain.GetAssembly (IAssemblyName의 AssemblyName, BindingOptions의 bindingOptions 1)> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 :. PostSharp.Sdk.CodeModel.AssemblyRefDeclaration에서^5YpB0scd (BindingOptions _0 1)> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : PostSharp.Sdk.Extensibility.Tasks.MulticastAttributeTask.^SgrhoGlQ (AssemblyRefDeclaration _0) 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : PostSharp.Sdk.Extensibility.Tasks.MulticastAttributeTask에서 .^+ GwnKh4ZYHu3() 1> F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : \ TwinkyTalk \ TwinkyTalk : PostSharp.Sdk.Extensibility.Tasks.MulticastAttributeTask.Execute() 1>에서 F.csproj : 오류 PS0099 : PostSharp.Sdk.Extensibility.Project.ExecutePhase (문자열 상) 1>에서 F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : PostSharp.Sdk.Extensibility.Project.Execute()에서 1 > F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 : PostSharp.Hosting.PostSharpObject.ExecuteProjects() 1>에서 F : \ TwinkyTalk \ TwinkyTalk.csproj : 오류 PS0099 일 : PostSharp.Hosting.PostSharpObject.InvokeProject (ProjectInvocation projectInvocation).

프로젝트에서 "newtonsoft.json, version = 4.5.0.0"에 대한 참조를 찾을 수 없습니다. 왜 그런지 찾고 있습니다.

"Build Host"PostSharp 프로젝트 속성을 관리하도록 설정했지만 동일한 예외가 발생했습니다.

답변

0

PostSharp에서 예외가 발생하는 동안 치료법이 모든 NuGet 패키지를 업데이트하는 것으로 나타났습니다.

6

일반적으로 일부 타사 라이브러리에서 어셈블리의 이전 버전 (이 경우 Newtonsoft.Json)을 참조 할 때이 오류가 발생할 수 있습니다. 이 문제는 web.config/app.config 파일에서 바인딩 리디렉션을 지정하면 해결됩니다.

<dependentAssembly> 
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/> 
    <bindingRedirect oldVersion="0.0.0.0-6.0.3.0" newVersion="6.0.3.0"/> 
</dependentAssembly> 

그러나 PostSharp에 바인딩 리디렉션 구성을 알려야합니다. 당신은 당신의 * .csproj 파일에 PostSharpHostConfigurationFile 속성을 설정하여이 작업을 수행 할 수 있습니다 :

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

SO (PostSharp AssemblyLoadException Autofac) 다른 비슷한 질문 및 relevant blog post있다.

+0

안녕하세요. 알렉스, 도와 주셔서 감사합니다. 두 가지 방법을 모두 시도했지만 문제는 해결되지 않았지만 올바른 방향으로 나를 안내합니다. 다른 누구도 같은 문제가있는 경우를 대비하여 최종 해결책을 추가했습니다. –