2017-02-14 3 views
4

VS 2015에서 데이터베이스 단위 테스트 프로젝트가 있습니다. 이제 VS 2017 RC를 테스트하고 있습니다.Microsoft.Data.Tools.Schema.Sql.UnitTesting 어셈블리의 어셈블리 충돌 해결

해결 방법이 확실하지 않은 Microsoft.Data.Tools.Schema.Sql.UnitTesting 어셈블리와 어셈블리 충돌이 있습니다. GAC에는이 어셈블리의 버전 15.0이 있습니다. VS 2017 SSDT의 일부로 버전 15.1을 사용할 수 있지만 GAC에서는 사용할 수 없습니다.

app.config에서 어셈블리 리디렉션을 시도했지만 차이가 없습니다.

나는 구체적으로 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\SQLDB 폴더를 탐색하고 그곳에서 참조 할 어셈블리를 선택하려고 시도했습니다. 그러나 GAC 어셈블리로 되돌려졌습니다. 프로젝트 속성에서 Specific Version = True를 설정하는 경우에도 계속 그렇게했습니다.

참조 경로 프로젝트 속성에서 SSDT가있는 이전 폴더를 이미 제거하고 2017 위치로 지정했습니다.

Microsoft.Data.Tools.Components 어셈블리와 비슷한 문제가 있었지만 프로젝트 속성에 Specific Version = False (이상하게도 ...)를 지정하여 해결되었습니다.

프로젝트에서 참조를 제거하면 프로젝트가 빌드되지만 어셈블리의 버전 15.0을 찾을 수 없다는 경고가 표시됩니다. 이 경우 테스트는 실행되어 통과합니다. 해결책이 열려있는 한 그것은 단지 지속됩니다. 닫은 후 다시 열면 "나쁜"참조가 References 목록에 다시 나타납니다.

Screen shot of References list of database project after loading

편집 : 나는 asmspy를 실행하고이 mscorlib에와 System.Data 포함한 시스템 어셈블리, 2.0 및 4.0 버전 사이에 충돌을 감지합니다. 2.0 버전은 모두 Microsoft.VisualStudio.QualityTools.UnitTestFramework 버전 10.0으로 참조됩니다. 나는 그 레퍼런스를 10.1로 업그레이드했는데, 그 버전은 아직도 그 어셈블리의 버전 2.0을 참조합니다. 이것이 관련이 있는지/관련 있는지 나는 모른다.

답변

0

어셈블리 문제의 원인은 .NET Target Framework 버전을 4.5.2 대신 4.6.1로 변경 한 것과 관련이 있습니다.