2013-02-09 4 views
1

Проект модульного тестирования, перенесенный из VS2010, по-прежнему использует автогенераторы доступа к частной собственности.Почему Shadow Task не находит ссылку на DLL?

После многочасового кодирования и тестирования решения, включающего проект библиотеки классов, проект модульного теста для проекта библиотеки классов и веб-проект, неожиданно появляется ошибка. Веб-проект выполняется под IIS Express.

Ошибка 24 Не удалось загрузить файл или сборку «The.ClassLibrary, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null» или одна из его зависимостей. Система не может найти указанный файл. The.ClassLibrary.Tests

Факты

  • The.ClassLibrary.Tests имеет ссылку на проект в The.ClassLibrary.
  • Там не было никаких других ошибок сборки (проверено вывод сборки не только окна ошибок)
  • DLL, физически присутствует с текущего времени в bin\debug
  • Я перезапуске IIS Express
  • Я перезагрузил Visual Studio
  • очищен от вирусов/перестроен раствора

ответ

0

Вариант А

Работайте над проблемой. Это может повториться.

В дополнение к шагам, пытавшихся, необходимо также искать и удалять все вхождения The.ClassLibrary.Dll на диске. Таким образом, полная процедура:

  • Стоп IIS Экспресс
  • Выход Visual Studio 2012
  • Поиск и удаление все экземпляры "отсутствующей" DLL.
  • Начало Visual Studio 2012

Я надеюсь, что это поможет кому-то.

Вариант B

Устранить проблему должным образом

Частные аксессоров амортизируются в VS2012. Вместо этого сделайте частным вещам, которые должны быть видимы для модульного теста , а также и использовать атрибут InternalsVisibleTo в тестируемом проекте, чтобы обеспечить доступ к тестовому проекту для внутренних свойств, методов и полей объекта теста ,

AssemblyInfo.cs (of MyProject)

[assembly: InternalsVisibleTo("MyNs.MyProject.Tests")] 
Смежные вопросы