2010-08-17 31 views
3

我剛升級到visual studio 2010並安裝了代碼合同msi。當我嘗試使用它時,我收到了一個編譯器錯誤,指出system.diagnostics.contracts.contract dll在v3.5和v4框架中都存在。任何人都知道我該怎麼做才能解決這個問題?謝謝。system.diagnostics.contracts.contract在v4.0 v3.5中存在

+1

錯誤的確切文字是什麼? – SLaks 2010-08-17 00:31:07

+0

+1類型'System.Diagnostics.Contracts.Contract'存在於'c:\ Program Files \ Microsoft \ Contracts \ Contracts \ v3.5 \ Microsoft.Contracts.dll'和'c:\ Program Files \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.5 \ mscorlib.dll' – 2012-08-16 00:00:13

回答

10

如果您要升級使用.NET 4.0合約的.NET 3.5項目,請確保您刪除了對Microsoft.Contracts程序集的引用。

Microsoft.Contracts程序集提供了用於.NET 2.0或3.5項目的代碼合同,但是在缺省情況下提供了代碼合同,並且在mscorlib中提供了.NET 4.0,因此您不需要它。它們共享System.Diagnostics.Contracts命名空間,因此通過同時引用這兩個命名空間,編譯器無法確定您嘗試使用哪一個。

+0

我刪除了所有項目中的引用,但VS仍然顯示相同的錯誤...不知道爲什麼...刪除,清理 - >重建 - >相同的結果.. – Legends 2016-10-15 13:07:39

0

我解決了它通過第一次安裝它,你沒有真正解決它。 然後刪除引用,然後我將項目版本更改爲4.5,之後,它工作。

相關問題