Запуск MSTest завершился неудачно, поскольку исходная сборка не является доверенной.
-
03-07-2019 - |
Вопрос
Я только что добавил xUnit в наш тестовый проект (для Asserts мы все еще используем MSTest в качестве платформы), и сразу же при выполнении тестов отказались выполнять какие-либо тесты.Это сообщение об ошибке:
Не удалось поставить тестовый запуск в очередь '{ ....} 'Проблема развертывания тестового запуска:Расположение файла или каталога '... xunit.dll' не доверяется.
Решение
Мне потребовалось несколько попыток, чтобы найти ответ в Google, поэтому я помещаю его здесь на случай, если кто-то еще столкнется с той же проблемой.Подробное описание можно найти на это сообщение в блоге.
По сути, исправление заключается в щелчке правой кнопкой мыши по файлу dll (например, xunit.dll) в проводнике Windows, переходе в «Свойства» и нажатии «Разблокировать» внизу вкладки рядом с текстом «Безопасность».Похоже, что Vista/Windows 2008 автоматически помечает сборки, поступающие с других компьютеров или из Интернета, как небезопасные.
Как отметили несколько комментаторов, вам также может потребоваться перезапустить Visual Studio, чтобы это вступило в силу.
Другие советы
В моей команде была такая же проблема.
Ваше решение не сработало, но этот пост Чарльза Стерлинга помогло.
Мы использовали следующую строку:
caspol -machine -addgroup 1 -url file://\\server/share/* FullTrust -name DevShare
После возникновения этой проблемы и потраченных часов, пытаясь заставить «Разблокировать» оставаться дольше, чем несколько минут, и / или выяснить, Касполь безрезультатно, я наконец нашел через Google небольшую информацию о том, что сборки будут снова заблокированы при следующей сборке или пересоздании проекта, поскольку они повторно копируются из исходного исходного местоположения.(Думаю, я никогда не замечал, что это происходило раньше со сборками ссылок, но в любом случае...)
Мое исправление заключалось в следующем:
Скопируйте все необходимые DLL в другое место для безопасного хранения
Удалить ссылки в Visual Studio
Физически удалить DLL в папке корзины
Разблокировать DLL индивидуально в том месте, где они были скопированы
Добавить ссылки обратно в Visual Studio из места для удержания
Каждая последующая сборка или перестройка впоследствии работала нормально.
Работая на компьютере с XP (даже с установленным .NET 3.5 SP1), мне не удалось заставить работать ни одно из других решений, перечисленных здесь.
Однако работая с той же сообщение Чарльза Стерлинга на что ссылается Дэви Ландман, мне наконец удалось реализовать этот вариант:
- Запустите инструмент настройки .NET 2.0 (Настройки...Панель управления...Инструменты управления...Конфигурация .NET Framework 2.0)
- Нажмите вниз на «Мой компьютер…».Политика безопасности во время выполнения...Машина ...Кодовые группы...Весь_код"
- Создайте новую группу кодов с условием членства «Зона» = «Местная интрасеть» и назначьте набор разрешений «FullTrust».
- Перезапустите Visual Studio.
После этих шагов я могу запускать тесты, в том числе после перезагрузки и перестройки.
РЕДАКТИРОВАТЬ:как описано в этот ответ, вам может потребоваться установить .NET SDK (который отличается от .NET Framework), чтобы иметь в вашей системе инструмент настройки .NET 2.0.
У меня была такая же проблема с MOQ.Но не «разблокировал».Каждый раз, когда я его разблокировал, он все равно блокировался!?!?
Мне пришлось разблокировать загруженный мной исходный zip-файл.Затем снова скопируйте DLL из zip-файла.После этого это работает.
Сейчас это может показаться очевидным, но когда я нажимал «Разблокировать», файл был установлен как доступный только для чтения.
Только после снятия флажка с этого атрибута, применения и выбора разблокировки я действительно заработал.
Попробуйте.
:)
ПС:Я также удалил все старые библиотеки DLL из папки bin, просто чтобы убедиться, что Visual Studio не подхватывает старую.
У меня была такая же проблема с загруженными DLL, заблокированными Vista.Вам нужны права администратора, чтобы получить кнопку «Разблокировать» в свойствах файла.я просто заменил библиотеки DLL последней версией из системы контроля версий. (TFS), где я совершал их раньше.
- Идти к
file
- Щелкните правой кнопкой мыши и выберите
Properties
- При первой регистрации нажмите на
Allow
Я также попробовал открыть файл в Notepad++ и переименовать его.Немного другой подход, но мне помогло.Локальная файловая система тогда думает, что она исходит от той же машины.
Необходимо разблокировать не только moq.dll.Последний zip-файл включает в себя файлы moq.xml и moq.pdb — ссылка на dll также копирует эти два файла в папки bin.Я обнаружил, что если все три не разблокированы, тесты не запустятся.