Подтвердить что ты не робот

Mstest не копирует библиотеку, указанную в проекте, но используется только во время выполнения

У меня есть проект, который использует Microsoft Enterprise Library и использует конфигурацию для указания типа для кэширующего менеджера.

Загруженный таким образом менеджер кэширования зависит от библиотеки Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.dll, которая включена в мой тестовый проект в качестве ссылки, но библиотека не используется кодом напрямую (во время компиляции). Таким образом, скомпилированный файл mytests.dll не будет иметь ссылку на эту библиотеку (это подтверждено с помощью dotpeek).

Вопрос № 1: Почему MSTest не копирует такую ​​библиотеку в папку temp для тестирования? Вопрос № 2: Есть ли элегантный способ?

Не элегантное решение # 1: сделайте фиктивную ссылку на включенную библиотеку (как упоминалось в этом потоке);

или решение # 2: используйте MSTest. Разверните конфигурацию, чтобы включить библиотеку явно.

решение # 3:
Использование файла .testsettings в mstest разрешает проблему, даже если параметр развертывания отключен. То есть файл установочных файлов содержит:

<Deployment enabled="false">
</Deployment>

Похоже, что это приводит к тому, что mstest запускается не в каталоге temp TestResults\user_HOST 2011-12-21 15_22_08\Out, а в bin\Debug (где соответствующая библиотека правильно развернута).

Является ли это ожидаемым поведением mstest? Я имею в виду тот факт, что mstest не использует временный каталог, если Deployment отключен в файле .testsettings?

4b9b3361