MSTest выполнить не удалось, поскольку исходная сборка не является доверенной - PullRequest
62 голосов
/ 14 октября 2008

Я только что добавил xUnit в наш тестовый проект (для Asserts мы все еще используем MSTest в качестве фреймворка), и сразу же тестовые прогоны отказались выполнить любой из тестов. Это сообщение об ошибке:

Не удалось поставить в очередь тестовый прогон '{....}' Проблема развертывания тестового запуска: расположение файла или каталога '... xUnit.dll' не является доверенным.

Ответы [ 10 ]

98 голосов
/ 14 октября 2008

Мне потребовалось несколько попыток найти ответ в Google, поэтому я выкладываю его здесь на случай, если кто-то столкнется с такой же проблемой. Подробное описание можно найти по адресу в этом блоге .

В основном, исправление вызывает щелчок правой кнопкой мыши по файлу dll (например, xunit.dll) в Проводнике Windows, переход в Свойства и щелчок «Разблокировать» внизу вкладки рядом с текстом «Безопасность». Похоже, что Vista / Windows 2008 автоматически помечает сборки, полученные с других компьютеров или из Интернета, как небезопасные.

Как уже упоминалось несколькими комментаторами, вам может потребоваться перезапустить Visual Studio, чтобы это вступило в силу.

17 голосов
/ 04 декабря 2008

В моей команде была такая же проблема.

Ваше решение не сработало, но этот пост Чарльза Стерлинга помогло.

Мы использовали следующую строку:

caspol -machine -addgroup 1 -url file://\\server/share/* FullTrust -name DevShare
10 голосов
/ 11 февраля 2009

После этой проблемы и долгих часов, пытаясь заставить "Разблокировать" придерживаться дольше нескольких минут и / или выяснить caspol безрезультатно, я наконец нашел в Google небольшой кусочек, что сборки будет снова заблокирован в следующий раз, когда вы соберете или перестроите проект, поскольку они будут скопированы из исходного местоположения. (Наверное, я никогда не замечал, что это раньше случалось со сборками ссылок, но все равно ...)

Мое исправление для этого было следующее:

  1. Скопируйте все необходимые библиотеки DLL в другую место для хранения

  2. Удалить ссылки в Visual Studio

  3. Физически удалить библиотеки DLL в папка для мусора

  4. Разблокировать библиотеки DLL индивидуально в том месте, где они были скопированы

  5. Добавить ссылки вернуться в Visual Studio из место удержания

После этого каждая последующая сборка или перестройка работала нормально.

8 голосов
/ 18 декабря 2009

Работая на компьютере с XP (даже с установленным .NET 3.5 SP1), я не смог заставить работать ни одно из перечисленных здесь решений.

Однако, работая с той же заметки Чарльза Стерлинга , на которую ссылается Дейви Лэндман, мне наконец-то удалось это изменение:

  1. Запустите инструмент настройки .NET 2.0 (Настройки ... Панель управления ... Администрирование ... Конфигурация .NET Framework 2.0)
  2. Нажмите "Мой компьютер ... Политика безопасности во время выполнения ... Компьютер ... Группы кодов ... All_Code"
  3. Создать новую группу кодов с условием членства «Zone» = «Локальная интрасеть» и назначить набор разрешений «FullTrust»
  4. Перезапустить Visual Studio

После этих шагов я могу запускать тесты, в том числе после перезапуска и восстановления.

РЕДАКТИРОВАТЬ: как описано в этого ответа , вам может потребоваться установить .NET SDK (который отличается от .NET Framework), чтобы иметь в вашей системе инструмент конфигурации .NET 2.0.

4 голосов
/ 29 июня 2010

У меня была такая же проблема с moq. Но не «разблокировать». Каждый раз, когда я разблокировал его, он все еще был заблокирован!?!?

Мне пришлось разблокировать оригинальный zip-файл, который я скачал. Затем скопируйте DLL из zip-файла снова. Это работает после этого.

3 голосов
/ 20 февраля 2011

Сейчас это может показаться очень очевидным, но когда я щелкнул по кнопке разблокировать, файл был установлен только для чтения.

Только после отмены проверки этого атрибута, применения и выбора разблокировки я действительно получил эту работу.

Пройди.

:)

PS: Я также удалил все старые библиотеки DLL из папки bin, просто чтобы убедиться, что Visual Studio не подхватывает старую.

1 голос
/ 19 сентября 2012
  • Перейти к file
  • Щелкните правой кнопкой мыши и выберите Properties
  • В первом регистре нажмите Allow
1 голос
/ 30 июля 2009

У меня была такая же проблема с загруженными DLL, заблокированными Vista. Вам нужны права администратора, чтобы получить кнопку «Разблокировать» в свойствах файла. Я просто заменил библиотеки DLL последней версией из системы контроля версий (TFS), где я их ранее фиксировал.

0 голосов
/ 24 августа 2011

Это не просто moq.dll, который нужно разблокировать. Последний zip-файл включает в себя файлы moq.xml и moq.pdb - при обращении к dll эти два других файла также копируются в папки bin. Если все три не разблокированы, тесты не будут выполняться, я обнаружил.

0 голосов
/ 12 ноября 2010

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

...