Модульные тесты Visual Studio: dll не доверяет

Я изо всех сил пытаюсь запустить некоторые модульные тесты и задаюсь вопросом, есть ли у кого-нибудь что-нибудь проницательное.

Настройка состоит в том, что у нас есть куча ссылочных DLL на сервере, и когда я пытаюсь выполнить, я получаю старую

Проблема с развертыванием тестового запуска: расположение файла или каталога c: \ source \ ProjectName \ bin \ debug \ 3rdPartyLibrary.dll не является надежным.

Я пробовал старую команду caspol:

caspol -m -ag 1.2 -url файл: \ server \ binaries * FullTrust

Что, кажется, работает для всего, кроме одной DLL. В настоящее время мне приходится вручную изменять разрешения каждый раз, когда я выполняю сборку тестового проекта, что очень неудобно. У кого-нибудь есть предложения? Запуск 64-битной ОС Win7, кстати.


person Ian    schedule 15.02.2010    source источник


Ответы (5)


У Йена был ключ, с которого я начал исправление. Я пытаюсь использовать WatiN на 64-битной Windows 7 и получаю сообщение об ошибке «не доверено». Вот шаги, которые я предпринял, чтобы это исправить.

  1. Закройте VS.
  2. Удалите каталог WatiN из файлов программ (x86)
  3. Перейдите в мой каталог пользователей. Найдите и удалите DLL WatiN.
  4. Перейдите в каталог моего проекта. Найдите и удалите все библиотеки DLL WatiN.
  5. Перезагрузите WatiN.
  6. Щелкните правой кнопкой мыши файл .zip и разблокируйте его содержимое перед копированием.
  7. Воссоздайте каталог WatiN в папке Programs Files (x86) и скопируйте файл из архива .zip.

Если вы не получите бродячую DLL WatiN, VS будет продолжать получать доступ к ненадежным DLL и сводить вас с ума.

person Victor Carless    schedule 13.03.2010

Если вы зайдете в dll через Winodws Explorer, щелкните правой кнопкой мыши и перейдите в свойства, там есть кнопка «Разблокировать».

person lancscoder    schedule 15.02.2010
comment
Есть, вот как разблокирую файл для запуска теста. Но делать это после каждой сборки нецелесообразно. Также нет никакой разницы, если я сделаю это с DLL на сервере. - person Ian; 15.02.2010
comment
Только что нашел эти инструкции по удалению опции Unblcok: petri.co.il/ Параметры unblock-files-windows-vista.htm (метод 3) есть и в Windows 7. - person lancscoder; 15.02.2010
comment
К сожалению, это работало, пока я не перезапустил свою машину, после чего она больше не работала, хотя настройки остались. - person Ian; 16.02.2010

Загружены ли из Интернета файлы .dll, о которых идет речь?

Если это так, они могут быть «заблокированы» ОС, если вы явно не разблокируете их. Вы можете сделать это, щелкнув правой кнопкой мыши нужные файлы и выбрав Свойства, а затем нажав кнопку Разблокировать.

person Mark Seemann    schedule 15.02.2010
comment
Марк, эта DLL исходит из Zip-файла, я думаю, загруженного из Интернета. Как я уже упоминал в другом ответе, разблокировка работает только с локальным файлом, который копируется, и должна выполняться для каждой сборки. - person Ian; 15.02.2010
comment
Разблокировали ли вы zip-файл перед его разархивированием? Хотя я не могу это объяснить, у меня была такая же проблема, и она не исчезла, пока я не разблокировал zip-файл. Если вы попробуете это сделать, помните, что вы должны перезапустить VS, прежде чем он подберет изменения файла, но я предполагаю, что на сервере сборки он всегда запускается с чистого листа. - person Mark Seemann; 15.02.2010
comment
Марк, нет, я не попробую. - person Ian; 15.02.2010
comment
К сожалению, молнии больше нет. Почувствуйте, как загрузить его, чтобы доверить его разархивировать, это неправильный подход ... - person Ian; 16.02.2010
comment
Я должен был добавить здесь в какой-то момент, что это действительно была проблема в моем случае. Мне пришлось повторно загрузить zip-архив, чтобы разблокировать его, а затем распаковать, прежде чем я смог использовать DLL надежным способом. Безумие! - person Ian; 05.05.2011

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

person Nick    schedule 13.12.2010

Вам необходимо загрузить streams.exe по следующему пути: http://technet.microsoft.com/en-us/sysinternals/bb897440.aspx

поместите его в ту же папку, где у вас возникла проблема с dll, перейдите по этому пути в командной строке / powershell и выполните следующую команду: streams -s -d (командная строка). \ streams.exe -s -d "Папка Имя "(от PowerShell)

person Chaitanya    schedule 07.06.2013