как удалить Microsoft.ссылка CodeContracts из решения?

#visual-studio-2010 #reference #code-contracts #.net-assembly

#visual-studio-2010 #ссылка #код-контракты #.net-сборка

Вопрос:

У меня есть большое решение для веб-службы (написанное на C # с таргетингом на .NET 3.5), которое состоит из 16 отдельных проектов (множество библиотек классов, несколько веб-приложений и проектов установки). Оно разработано в visual studio 2010.

Недавно я экспериментировал с Microsoft.CodeContracts, и после его оценки решил, что он не подходит для моих нужд. Я удалил весь код, который ссылался на него, и удалил ссылки на сборки из всех проектов, которые ссылались на него.

Однако моя веб-служба теперь начала случайным образом возвращать это сообщение об ошибке:

 "Could not load file or assembly 'Microsoft.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=736440c9b414ea16' or one of its dependencies. The system cannot find the file specified."
  

Как / почему он все еще может пытаться загрузить эту сборку, когда я удалил весь код и ссылки на него?

При дальнейшем исследовании я все еще нахожу, что Microsoft.Контракты.dll отображается в папке / bin / моего веб-приложения, хотя ни один проект не ссылается на нее. Она также указана как «обнаруженная зависимость» в моем проекте установки — но я на 100% уверен, ЧТО НИ ОДИН из МОИХ ПРОЕКТОВ ЕЕ НЕ ИСПОЛЬЗУЕТ!

Это сводит меня с ума — очевидно, что-то скрывается вокруг, что содержит ссылку. Как я могу удалить все следы Microsoft.CodeContracts из моего решения?

Комментарии:

1. Вы просматривали все свои файлы .csproj?

Ответ №1:

В файлах проекта CSharp имеется множество XML-элементов, которые начинаются с CodeContracts.

Удалите их, если считаете, что это необходимо.

Разделов будет столько, сколько у вас конфигураций {Release, Debug} x {Любой процессор, смешанные платформы} = 4. Сделайте это для каждого файла *.csproj в вашем решении.

Имейте в виду, что CodeContracts условно генерирует / переплетает код, поэтому ваше приложение может вести себя по-другому.

Комментарии:

1. Если вам нужен маршрут пользовательского интерфейса, взгляните на свойства каждого проекта. Существует вкладка CodeContracts (обычно в левом нижнем углу). В нем есть возможность создавать, не создавать или не выбрано. Выберите не выбрано.

2. Спасибо за ваш ответ, Грег. Я отредактировал различные файлы .csproj и удалил (многие) ссылки на CodeContracts. В каждой группе свойств было 23 отдельных элемента — беспорядок! Наиболее интересным было следующее: <CodeContractsReferenceAssembly>(none)</CodeContractsReferenceAssembly>.