system.diagnostics.contracts.contract существует в обоих v4.0 v3.5 - PullRequest
3 голосов
/ 17 августа 2010

Я только что обновился до Visual Studio 2010 и установил код контракта msi. Когда я пытаюсь использовать его, я получаю сообщение об ошибке компилятора, что dll system.diagnostics.contracts.contract существует в рамках v3.5 и v4. Кто-нибудь знает, что я должен сделать, чтобы решить эту проблему? Спасибо.

Ответы [ 2 ]

10 голосов
/ 17 августа 2010

Если вы обновляете проект .NET 3.5, использующий контракты, до .NET 4.0, обязательно удалите ссылку на сборку Microsoft.Contracts.

Сборка Microsoft.Contracts предоставляет контракты кода для использования в проектах .NET 2.0 или 3.5, но по умолчанию поставляется с .NET 4.0 в mscorlib, поэтому вам это не нужно. Они оба разделяют пространство имен System.Diagnostics.Contracts, поэтому, имея ссылки на оба одновременно, компилятор не может определить, какое из них вы пытаетесь использовать.

0 голосов
/ 08 марта 2016

Я решил это, сначала установив его, а ты на самом деле не решил. Затем удалил ссылки, а затем я изменил версии проекта на 4.5, и после этого все заработало.

...