2013-09-03 3 views
1

최근 Visual Studio 2012 업데이트가 제 빌드에서 손상된 것 같습니다. 나는 지난주의 너겟 업데이트와 관련이 있다고 생각한다.VS2012 NuGet 업데이트로 인해 빌드시 약한 경고가 발생합니다.

NuGet package restore started. 
All packages are already installed and there is nothing to restore. 
NuGet package restore finished. 
1>------ Rebuild All started: Project: Project1, Configuration: Debug Any CPU ------ 
1> Consider app.config remapping of assembly "Microsoft.Data.OData, Culture=neutral, PublicKeyToken=31bf3856ad364e35" from Version "5.2.0.0" [] to Version "5.6.0.0" [C:\Users\avianbc\Desktop\Project1\packages\Microsoft.Data.OData.5.6.0\lib\net40\Microsoft.Data.OData.dll] to solve conflict and get rid of warning. 
1> Consider app.config remapping of assembly "Microsoft.Data.Edm, Culture=neutral, PublicKeyToken=31bf3856ad364e35" from Version "5.2.0.0" [] to Version "5.6.0.0" [C:\Users\avianbc\Desktop\Project1\packages\Microsoft.Data.Edm.5.6.0\lib\net40\Microsoft.Data.Edm.dll] to solve conflict and get rid of warning. 
1> Consider app.config remapping of assembly "System.Spatial, Culture=neutral, PublicKeyToken=31bf3856ad364e35" from Version "5.2.0.0" [] to Version "5.6.0.0" [C:\Users\avianbc\Desktop\Project1\packages\System.Spatial.5.6.0\lib\net40\System.Spatial.dll] to solve conflict and get rid of warning. 
1>c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3247: Found conflicts between different versions of the same dependent assembly. 
1> Project1 -> C:\Users\avianbc\Desktop\Project1\Project1\bin\Project1.dll 
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ========== 

어떻게 이러한 경고를 해결할 수 있습니까? 나는 (Edm 어셈블리와 관련된) 일관성없는 모델 바인딩과 같은 것들이 등장했기 때문에 나의 애플리케이션에 이상한 부작용이 있었다.

답변

2

왜 이것이 이상하다고 생각하는지 확신 할 수 없지만 매우 명확합니다. 설치된 패키지의 버전이 두 개 이상 있습니다 (5.2 및 5.6). 일부 구성 요소가 5.2 및 5.6을 참조하고 있으며 이로 인해 경고가 발생합니다. 5.2를 참조하는 어셈블리가 5.6을 대신 사용하도록 5.2에서 5.6으로 별칭을 지정하는 것이 좋습니다.

이러한 어셈블리를 제어하지 않는 한 가장 좋은 방법은 아닙니다. 아마도 5.2 패키지를 제거한 다음 Nuget 참조를 5.6 버전으로 업데이트하고 다시 빌드해야합니다.

4

어셈블리 버전 5.2를 버전 5.6에 매핑하여 이러한 경고를 해결할 수 있다는 메시지가 표시됩니다. 설정 파일의 assemblyBinding을 편집하면됩니다. 이 경우 다음 XML을 추가하십시오.

<dependentAssembly> 
    <assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="0.0.0.0-5.2.0.0" newVersion="5.6.0.0" /> 
</dependentAssembly> 
<dependentAssembly> 
    <assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="0.0.0.0-5.2.0.0" newVersion="5.6.0.0" /> 
</dependentAssembly> 
<dependentAssembly> 
    <assemblyIdentity name="System.Spatial" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="0.0.0.0-5.2.0.0" newVersion="5.6.0.0" /> 
</dependentAssembly> 
관련 문제