2017-05-17 8 views
0

roslyn을 사용하는 솔루션을 4.7로 업데이트하려고합니다. 나는 다음과 같은 오류 얻을 nuget 패키지를 업데이트 할 때 는 :.net framework 4.7에 대한 솔루션 업데이트 : Roslyn 문제

var compilation = CSharpCompilation.Create("MyCompilation", new[] {syntaxTree}, references); 
var diag = compilation.GetDiagnostics(); 

예외는 다음과 같습니다 :

One or more unresolved package dependency constraints detected in the existing packages.config file. All dependency constraints must be resolved to add or update packages. If these packages are being updated this message may be ignored, if not the following error(s) may be blocking the current package operation: 'System.Security.Cryptography.Algorithms 4.3.0 constraint: System.IO (>= 4.3.0)'

그리고 다음을 로슬린를 사용하려고 할 때, 나는 다음과 같은 코드를 실행 예외가

Managed Debugging Assistant 'BindingFailure' occurred HResult=0x00000000 Message=Managed Debugging Assistant 'BindingFailure' : 'The assembly with display name 'System.Security.Cryptography.Algorithms' failed to load in the 'LoadFrom' binding context of the AppDomain with ID 1. The cause of the failure was: System.IO.FileLoadException: Could not load file or assembly 'System.Security.Cryptography.Algorithms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)'

수정 방법에 대한 의견이 있으십니까?

답변

0

종속 어셈블리 리디렉션과 관련된 문제가있었습니다. VS2017이 내 app.config 파일 전체에 많은 것을 추가하는 것처럼 보입니다.

변경이와

<dependentAssembly> 
    <assemblyIdentity name="System.Security.Cryptography.Algorithms" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-4.2.1.0" newVersion="4.2.1.0" /> 
    </dependentAssembly> 

:

<dependentAssembly> 
    <assemblyIdentity name="System.Security.Cryptography.Algorithms" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-4.2.1.0" newVersion="4.1.0.0" /> 
    </dependentAssembly> 

을 내 주요 프로젝트의 app.config 파일에있는 것은 그것을 한 것으로 보인다.

0

packages.config 파일의 내용을 표시 할 수 있습니다. 에서 필요하기 때문에 System.IO을 버전 4.3.0 이상으로 업그레이드해야합니다.