Не вдалося обробити файл resx через те, що він перебуває в Інтернеті або в зоні обмеженого доступу або на ньому є позначка мережі на файлі


89

Я стикаюся з проблемою під час налагодження кодування API # # у Visual studio 2017. Налагодження не розпочато та відображається повідомлення про помилку

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

Будь-яка ідея щодо цього повідомлення про помилку?


12
Спробуйте клацнути правою кнопкою миші на файлі та вибрати Властивості у Провіднику вікон. У вас є опції внизу діалогового вікна, щоб розблокувати файл?
Лассе В. Карлсен,

Великий Лассе, зараз налагодження працює добре завдяки вам.
Раджу Сараванан

3
Чи є "знак Інтернету" новим Знаком звіра?
Конрад,

Відповіді:


146

Якщо ви завантажили файл з Інтернету, окремо, або всередині .zip-файлу, або подібного, можливо, його було "заблоковано", оскільки він позначений як той, що надходить із зони Інтернету. Багато програм використовуватимуть це як знак того, що вмісту не слід довіряти.

Найпростішим рішенням є натискання файлу правою кнопкою миші в Провіднику Windows, вибір Властивостей, і внизу цього діалогового вікна ви повинні мати опцію "Розблокувати". Не забудьте натиснути OK, щоб прийняти зміни.

Якщо ви отримали файл з архіву, як правило, краще спочатку розблокувати архів, якщо файл позначено як той, що надходить із зони Інтернету, і ви розпакуєте його, цей прапор може поширюватися на багато файли, які ви щойно розархівували. Якщо ви розблокуєте спочатку, архівовані файли повинні бути в порядку.

Для цього також існує команда Powershell, Unblock-File :

> Unblock-File *

Крім того, існують способи написання коду, який також зніме замок.

З коментарів @ Defcon1: Ви можете також комбінувати Unblock-Fileз , Get-ChildItemщоб створити конвеєр , який розблокує файл рекурсивно. Оскільки Unblock-Fileне має можливості самостійно знаходити файли рекурсивно, вам доведеться використовувати Get-ChildItemцю частину.

> Get-ChildItem -Path '<YOUR-SOLUTION-PATH>' -Recurse | Unblock-File

1
Дякуємо за розроблену відповідь.
Раджу, Сараванан,

1
Дякуємо за посилання на PowerShell - дуже корисно при роботі з великою кількістю файлів
scotru

Чому мені було так важко знайти цю команду Powershell? Дякую! 👍
Невілл,

Виправлено мою проблему. Дякую
Мохамед Увайс М

14
Я використовував Розблокувати-файл у рекурсивному режимі:ps> Get-ChildItem -Path '<YOUR-SOLUTION-PATH>' -Recurse | Unblock-File
Defkon1

62
  1. Відкрийте провідник файлів. Перейдіть до каталогу проекту / рішення
  2. Шукайте * .resx. -> Ви отримаєте список файлів resx
  3. Клацніть правою кнопкою миші файл resx, відкрийте властивості та поставте прапорець біля пункту «Розблокувати»
  4. Повторіть № 3 для кожного файлу resx.
  5. Перезавантажте проект.

10
Варіанту немає unblock.
dafie

1
Параметр розблокування з’явиться в області Атрибути внизу вкладки Загальне, якщо файл заблоковано. Якщо його не блокувати, параметр не відображається.
spadelives

1
Працював у мене! Чудова відповідь!
Тобі

4
Щоб бути зрозумілим, це знаходиться у провіднику файлів, а не у провіднику рішень Visual Studio.
Ferus

Може підтвердити, що це проблема. Детальніше про коментар @ Dafie: Якщо немає прапорця для розблокування, файл уже розблоковано. Проблема викликана одним із інших. Ви побачите, що якщо прапорець є, ви ставите його та натискаєте "застосувати", прапорець зникає зовсім.
Сандер

24

Жодна з цих відповідей не спрацювала для мене, мені довелося зробити наступне:

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

Джерело: https://superuser.com/q/44503


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.
Mar Tin

Я також можу підтвердити, що нічого не працювало, крім цього. Я додав файл: // [ім'я комп'ютера], а також IP-адресу спільного доступу до мережі, з якого завантажував .sln (наприклад, файл: //10.0.0.0). Я використовую 64-розрядну версію Windows 7 Enterprise / Internet Explorer версії 11.0.9600.19236 та Visual Studio 2019 Community Edition. Перезавантаження Windows також не потрібно.
Марк

6

Доповнюючи @ Ласс-v-Карлсен відповіді . Щоб розблокувати всі файли рекурсивно, запустіть із PowerShell від адміністратора всередині потрібної папки:

gci -recurse | Unblock-File

джерело посилання: Як розблокувати файли, завантажені з Інтернету? - Winhelponline
https://www.winhelponline.com/blog/bulk-unblock-files-downloaded-internet/


4

Хоча це вже давнє запитання, я витратив кілька годин, відстежуючи спосіб усунення цієї помилки, коли вона стосується декількох файлів, які знаходяться в підпапках протягом проекту.

Щоб виправити це для всіх файлів у проекті , Visual Studio -> Інструменти -> Параметри -> Параметри довіри та додайте шлях до проекту як надійний шлях.

Довірені шляхи Visual Studio


Єдине, що працювало у мене, ніхто з інших не працював.
ransems

4
  1. Знайдіть шлях із журналу помилок і відкрийте файл у провіднику 2) виберіть файл і клацніть правою кнопкою миші -> властивості
  2. Потім встановіть прапорець «розблокувати» та натисніть «застосувати» введіть тут опис зображення

2

Якщо ви використовуєте OneDrive або будь-який подібний мережевий диск, у вас є 2 варіанти:

1) найпростішим є переміщення папки в локальний каталог усередині ПК (наприклад :. C :).

2), але якщо ви хочете продовжувати використовувати OneDrive, я рекомендую додати його до надійних веб-сайтів у параметрах Internet Explorer, і це вирішить проблему.

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


2

Рішення: Відредагуйте та збережіть файл!

З VisualStudio перейдіть до подання та розгорніть, щоб побачити, що це файл resx

Клацніть правою кнопкою миші та виберіть OpenWith ... XML (Text) Editor .

Просто додайте пробіл в кінці та заощадите.


Я також спробував багато інших шляхів і не вдався. Я припускаю, що нещодавно була проведена додаткова перевірка
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

Жодне з перерахованого не працювало для мене.

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


0

Я натрапив на ще одну можливу причину цієї помилки. Якщо ви використовуєте символічні посилання NTFS у вашому дереві проектів і, ймовірно, замінені диски, ви можете отримати цю помилку, навіть якщо вони вказують на ваш локальний диск. У цьому випадку спробуйте уникнути ситуації, коли файли .resx отримуються через символічні посилання.


Це було все. Я представив символічне посилання для виправлення помилки шляху посилання в якомусь коді з іншого репо, яке я рідко використовую. Видалення символічного посилання та натомість злом csproj замість цього вирішили проблему.
Крістіан

0

Жодна з наведених вище пропозицій не спрацювала для мене, тому я створив новий файл із дещо іншою назвою та скопіював вміст файлу-порушника до нового файлу, перейменував файл-порушник та перейменував новий файл із назвою файлу-порушника. Працював як оберіг. Проблема вирішена.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.