#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>.