Разблокировка DLL на корпоративной машине. Как? - программирование
Подтвердить что ты не робот

Разблокировка DLL на корпоративной машине. Как?

Я пытаюсь проверить MVVMLight, но DLL, которые идут с ним, BLOCKED. Я прочитал об этом, и мне говорят, чтобы щелкнуть UNBLOCK в свойстве файла.. но это не существует для меня.. Тогда я узнал из программы под названием STREAMS, которая, как предполагается, разблокирует.. это не сработало... другая идея, как это исправить?

Ошибка 7 Не удалось загрузить файл сборки:///C:\MIX10-MVVM-Samples\Mix10.MvvmDemo2 - End\Mix10.MvvmDemo2\Bin\Debug\GalaSoft.MvvmLight.Extras.SL4.dll. Эта сборка, возможно, была загружена из Интернета. Если сборка была загружена из Интернета, она помечена Windows как веб файл, даже если она находится на локальном компьютере. Это может помешать его использованию в вашем проекте. Вы можете изменить это обозначение, изменив свойства файла. Только разблокируйте сборки, которым вы доверяете. Подробнее см. http://go.microsoft.com/fwlink/?LinkId=179545. Mix10.MvvmDemo2

4b9b3361

Ответ 1

Файл содержит альтернативный поток данных, который указывает, что контент был извлечен из Интернета и не является безопасным. Это особенность файловой системы NTFS, которая, к сожалению, скрыта, потому что Explorer не имеет поддержки для показа своего контента. Вы можете увидеть их в командной строке с помощью опции DIR/R. И введите их содержимое с именем файла TYPE: streamname. И удалите их с помощью DELETE filename: streamname

Другими трюками являются копирование файла в файловую систему, которая не поддерживает альтернативные потоки данных, которая отсекает их из файла. Например, флэш-диск. Или утилиту zip.

Более поздние версии Windows, я думаю, начиная с Win7, имеют встроенную поддержку для этого в Проводнике. Щелкните правой кнопкой мыши файл "Свойства" и нажмите "Разблокировать".

Ответ 2

SysInternals имеет отличную утилиту командной строки, называемую Streams. Это оказалось очень полезным для меня.

Потоки v1.56 - Перечислить чередующиеся потоки данных NTFS Copyright (C) 1999-2007 Mark Russinovich Sysinternals - www.sysinternals.com

использование: streams [-s] [-d] < файл или каталог >
-s Восстановить подкаталоги
-d Удалить потоки

Выполните следующую команду в каталоге, из которого вы хотите удалить потоки (такой же эффект, как и копирование на USB/FAT32-диск)

streams.exe -d -s *.*

Ответ 3

Сначала откройте файл zip, а затем извлеките dll. Фактически это то, что они инструктируют делать здесь.

Ответ 4

Только для общего понимания. NTFS поддерживает потоки (см. http://msdn.microsoft.com/en-us/library/aa364404%28VS.85%29.aspx). Полное имя потока имя_файла: stream_name: stream_type. Таким образом, можно легко написать дополнительную информацию о файле в дополнительном потоке файла. Если вы загрузите файл из Интернета, Internet Explorer напишите простую информацию в потоке с именем Zone.Identifier. Если у вас есть файл test.dll, загруженный из Интернета, вы можете использовать

more < test.dll:Zone.Identifier

чтобы просмотреть информацию из потока. Вы увидите что-то вроде

[ZoneTransfer]
ZoneId=3

Разблокировка - это не просто удаление этого потока. Я рекомендую вам прочитать http://weblogs.asp.net/dixin/archive/2009/03/14/understanding-the-internet-file-blocking-and-unblocking.aspx для более подробной информации.

Ответ 5

Я просто открыл DLL файл в блокноте ++ и сохранил его с другим именем.

Ответ 6

Если кому-то это помогает, я сбил две заблокированные DLL из TFS.

Мое решение:

  • Внутри Проводника Windows удалите две заблокированные DLL.
  • Внутри TFS выполните операцию "Получить определенную версию" в папке и убедитесь, что "Переписать все файлы, даже если локальная версия соответствует указанной версии", проверяется так, что вы вытащите свежие копии удаленных библиотеки DLL.
  • Восстановите свое решение.