방금 Visual Studio 2010으로 업그레이드하고 코드 계약 msi를 설치했습니다. 내가 그것을 사용하려고하면 system.diagnostics.contracts.contract dll이 v3.5 및 v4 프레임 워크 모두에 존재한다는 컴파일러 오류가 발생합니다. 누구든지이 문제를 해결하기 위해 무엇을해야하는지 알고 있습니까? 감사.system.diagnostics.contracts.contract가 v4.0 v3.5에 모두 있음
3
A
답변
10
계약서를 사용하는 .NET 3.5 프로젝트를 .NET 4.0으로 업그레이드하려면 Microsoft.Contracts
어셈블리에 대한 참조를 제거해야합니다.
Microsoft.Contracts
어셈블리는 .NET 2.0 또는 3.5 프로젝트에서 사용할 코드 계약을 제공하지만 기본적으로 .NET 4.0을 mscorlib
에 제공하므로 필요하지 않습니다. 둘 다 System.Diagnostics.Contracts
네임 스페이스를 공유하므로 동시에 두 가지에 대한 참조를 가짐으로써 컴파일러는 어느 것을 사용하려고하는지 알 수 없습니다.
+0
모든 프로젝트에서 참조를 제거했지만 VS가 여전히 같은 오류를 보여줍니다 ... 이유를 모르겠습니다 ... 제거, 정리 -> 다시 빌드 - > 같은 결과 .. – Legends
0
먼저 설치하여 해결했습니다. 실제로 해결하지 못했습니다. 그런 다음 참조를 제거한 다음 프로젝트 버전을 4.5로 변경 한 후 작동했습니다.
정확한 내용은 무엇입니까? – SLaks
+1 'System.Diagnostics.Contracts.Contract'형식이 'c : \ Program Files \ Microsoft \ Contracts \ Contracts \ v3.5 \ Microsoft.Contracts.dll'및 'c : \ Program Files \ Reference 어셈블리 모두에 있습니다. \ Microsoft \ Framework \ .NETFramework \ v4.5 \ mscorlib.dll ' –