Была сделана попытка загрузить сборку из сетевого расположения, из-за чего сборка была бы изолированной
.Net 4.0: Получение ошибки "была сделана попытка загрузить сборку из сетевого расположения, из-за чего сборка была бы изолированной"
применяемая настройка
<loadFromRemoteSources enabled="true"/>
не помогло.
Как я могу узнать, какая сборка вызывает проблему?
Как я могу его решить?
Ответы
Ответ 1
Я также столкнулся с этой проблемой, но моя проблема произошла, потому что файл был заблокирован, так как он был загружен из незащищенного источника, GMail в моем случае. Я решил это
- Щелкните правой кнопкой мыши проблемный файл
- Нажмите Свойства
- Нажмите Разблокировать
В моем случае это был весь файл .zip, который был небезопасным, поэтому я разблокировал файл, прежде чем разархивировать его.
Подробнее об этом решении здесь и здесь
Ответ 2
Чтобы найти проблемную сборку, используйте fuslogvw (часть Windows SDK и, следовательно, установлена с каждой Visual Studio).
Чтобы устранить эту проблему, вам действительно нужно добавить элемент loadFromRemoteSources в файл конфигурации вашего приложения. Вы уверены, что добавили loadFromRemoteSources внутри <runtime> Элемент?
В качестве альтернативы вы можете перейти на .NET 4.5, потому что MSDN говорит:
В .NET Framework 4.5 сборки по сетевым ресурсам по умолчанию запускаются как полное доверие; вам не нужно включать элемент
Ответ 3
Я видел это там, где упоминается "сетевое расположение", и вы используете локальную локальную сеть (то есть не удаленно), но она была скопирована из удаленного места (например, веб-сайт общего доступа к файлам).
В этом случае я подозревал, что DLL была заблокирована из-за концепции потоков, но диалог свойств пользовательского интерфейса проводника не показывал кнопку "разблокировать".
Чтобы обойти это, я использовал инструмент sysinternals "streams" (найти здесь: Загрузка потоков) следующим образом:
streams <your dll> -> view stream
streams -d <your dll> -> delete the stream data on a file
Также есть опция recurse с -r, если вы хотите настроить таргетинг на группу файлов.
Я надеюсь, что это поможет кому-то другому - это было сложно, потому что пользовательский интерфейс не показывал, что он заблокирован, но это явно (возможно, из-за какой-то другой меры безопасности здесь).
Это решение также означает, что вам не нужно настраивать флаг loadFromRemoteSources, поскольку это довольно широкий штрих.