Не удалось обработать resx файла из-за того, что он находится в Интернете или в зоне ограниченного доступа или имеет отметку Интернета в файле

89

У меня возникла проблема при отладке кода C # API в Visual Studio 2017. Отладка не началась и отображается сообщение об ошибке, например

введите описание изображения здесь

Есть идеи об этом сообщении об ошибке?

Раджу Сараванан
источник
12
Попробуйте щелкнуть файл правой кнопкой мыши и выбрать "Свойства" в проводнике Windowws. Есть ли у вас варианты разблокировки файла внизу диалогового окна?
Лассе В. Карлсен
Отличный Ласс, теперь отладка работает нормально Спасибо тебе.
Raju.Saravanan
3
Является ли «Знак паутины» новой Меткой Зверя?
Конрад

Ответы:

146

Если вы загрузили файл из Интернета, отдельно или внутри файла .zip или аналогичного, он мог быть «заблокирован», поскольку помечен как исходящий из зоны Интернета. Многие программы будут использовать это как знак того, что контенту нельзя доверять.

Самое простое решение - щелкнуть файл правой кнопкой мыши в проводнике Windows, выбрать «Свойства», и в нижней части этого диалогового окна у вас должна быть опция «Разблокировать». Не забудьте нажать ОК, чтобы принять изменение.

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

Для этого также есть команда Powershell, Unblock-File :

> Unblock-File *

Кроме того, есть способы написать код, который также снимет блокировку.

Из комментариев @ Defcon1: Вы также можете объединить Unblock-Fileс, Get-ChildItemчтобы создать конвейер, который рекурсивно разблокирует файл. Поскольку Unblock-Fileу вас нет возможности найти файлы рекурсивно, вы должны использовать Get-ChildItemэту часть.

> Get-ChildItem -Path '<YOUR-SOLUTION-PATH>' -Recurse | Unblock-File
Лассе В. Карлсен
источник
1
Спасибо за подробный ответ.
Raju.Saravanan
1
Спасибо за ссылку на PowerShell - очень полезно при работе с большим количеством файлов
scotru
Почему мне было так сложно найти эту команду Powershell? Благодарность! 👍
Невилл
Исправлена ​​моя проблема. Спасибо
Mohamed Uvais M
14
Я использовал Unblock-файл в рекурсивном режиме:ps> Get-ChildItem -Path '<YOUR-SOLUTION-PATH>' -Recurse | Unblock-File
Defkon1 06
62
  1. Откройте файловый менеджер. Перейдите в каталог проекта / решения
  2. Найдите * .resx. -> Вы получите список файлов resx
  3. Щелкните правой кнопкой мыши файл resx, откройте свойства и установите флажок «Разблокировать».
  4. Повторите №3 для каждого файла resx.
  5. Перезагрузите проект.
Атул Сурика
источник
10
Нет unblockварианта.
dafie
1
Параметр разблокировки появится в области «Атрибуты» в нижней части вкладки «Общие», если файл заблокирован. Если он не заблокирован, опция не отображается.
spadelives
1
Сработало у меня! Отличный ответ!
Тоби
4
Чтобы было ясно, это находится в проводнике файлов, а не в обозревателе решений Visual Studio.
Ферус
Могу подтвердить, что это проблема. Чтобы уточнить комментарий @Dafie: если нет флажка разблокировки, файл уже разблокирован. Проблема вызвана одним из других. Вы увидите, что если флажок установлен, вы отметите его и нажмете «применить», флажок полностью исчезнет.
Sander Koldenhof
24

Ни один из этих ответов у меня не сработал, мне пришлось сделать следующее:

  1. Меню «Пуск»> введите «Свойства обозревателя».
  2. На вкладке Безопасность выберите Зона местной интрасети, затем нажмите кнопку Сайты.
  3. Нажмите Дополнительно кнопку
  4. Введите файл: // [имя компьютера]
  5. Убедитесь, что флажок " Требовать проверку сервера ... " снят

Источник: https://superuser.com/q/44503

Baddack
источник
1
Добавление file://domain.comсработало, спасибо! контекст: капитальный ремонт сервера переместил наши файлы в DFS; домен Windows таков, domain.comчто теперь находятся файлы, в \\domain.com\...которых могла возникнуть проблема.
Kodithic
Я могу подтвердить, что это решение решает мою проблему по созданию .slnвнутреннего сетевого ресурса в локальной сети. Сообщение об ошибке было:error MSB3821: Couldn't process file *.resx due to its being in the Internet or Restricted zone or having the mark of the web on the file. Remove the mark of the web if you want to process these files.
Март Олово
Я также могу подтвердить, что ничего не работало, кроме этого. Я добавил file: // [имя компьютера], а также IP-адрес сетевого ресурса, из которого я загружал .sln (например, file: //10.0.0.0). Я использую 64-разрядную версию Windows 7 Enterprise с Internet Explorer версии 11.0.9600.19236 и Visual Studio 2019 Community Edition. Перезагрузка Windows также не требуется.
Marc
6

Дополняя ответ @ lasse-v-karlsen . Чтобы рекурсивно разблокировать все файлы, запустите из PowerShell от имени администратора в нужной папке:

gci -recurse | Unblock-File

ссылка на источник: Как разблокировать файлы, загруженные из Интернета? - Winhelponline
https://www.winhelponline.com/blog/bulk-unblock-files-downloaded-internet/

Марсио Антониу Сливак
источник
4

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

Чтобы исправить это для всех файлов в проекте , Visual Studio -> Инструменты -> Параметры -> Параметры доверия и добавьте путь к проекту в качестве надежного пути.

Надежные пути Visual Studio

Коди Дж. Мэтис
источник
Единственное, что сработало для меня, все остальные не работали.
Рансемс
4
  1. Найдите путь в журнале ошибок и откройте файл в проводнике 2) выберите файл и щелкните правой кнопкой мыши -> свойства
  2. Затем отметьте опцию «разблокировать» и нажмите «Применить». введите описание изображения здесь
манеш
источник
2

Если вы используете OneDrive или любой аналогичный сетевой диск, у вас есть 2 варианта:

1) самый простой - переместить папку в локальный каталог на вашем ПК (например: C :).

2), но если вы хотите продолжать использовать OneDrive, я бы порекомендовал добавить его на надежные сайты в параметрах Internet Explorer, и это решит проблему.

введите описание изображения здесь

Карлос Грегорио
источник
2

Решение: отредактируйте и сохраните файл!

Из VisualStudio перейдите в представление и разверните, чтобы увидеть файл resx.

В контекстном меню выберите OpenWith ... XML (Text) Editor .

Просто добавьте пробел в конце и сохраните.

profimedica
источник
Я также пробовал много других способов и потерпел неудачу. Я предполагаю, что есть недавняя дополнительная проверка
profimedica
2

У меня была эта проблема с файлами resx в моем решении. Я использую Onedrive. Однако ни одно из вышеперечисленных решений не исправило его.

Проблема заключалась в том, что значок, который я использовал, находился в файлах MyWindow.resx для окон.

Я удалил это, а затем взял значок из папки ресурсов App Local Resources.

 private ResourceManager rm = App_LocalResources.LocalResources.ResourceManager;
 
 ..
 
InitializeComponent();
this.Icon = (Icon)rm.GetObject("IconName");

Это произошло после обновления до VS2019.

Джон Джейкобсон
источник
1

Ничего из вышеперечисленного не помогло.

  • Параметр «Разблокировать» отсутствует в свойствах проводника.
  • Воссоздание файла, добавление папки (и файла resx) в Инструменты-> Параметры-> Настройки доверия не работают.

Решением было скопировать проект локально (с сетевого диска).

Вадим
источник
1

Если, как и я, вы прилежно следовали всем приведенным выше решениям и ошибка все еще существует, попробуйте закрыть и снова открыть Visual Studio.

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

Все еще учусь
источник
1

У меня ничего из вышеперечисленного не сработало.

Это случилось со мной после того, как я добавил новую кнопку в панель инструментов winform. Когда кнопка использует изображение по умолчанию System.Drawing.Bitmap(в свойстве изображения), у меня возникла эта ошибка. После того, как я изменил его на надежный образ (добавленный в мой файл ресурсов с установленной опцией «Разблокировать»), эта ошибка разрешилась сама собой.

MX313
источник
0

Я наткнулся на еще одну возможную причину этой ошибки. Если вы используете символические ссылки NTFS в дереве проекта и, возможно, заменяете диски, вы можете получить эту ошибку, даже если они указывают на ваш локальный диск. В этом случае постарайтесь избежать ситуации, когда файлы .resx доступны через символические ссылки.

Михаил Юцис
источник
Это было оно. Я ввел символическую ссылку, чтобы исправить ошибку ссылочного пути в некотором коде из другого репо, которое я редко использую. Удаление символической ссылки и взлом csproj вместо этого решило проблему.
Кристиан,
0

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

платье
источник