У меня возникла проблема при отладке кода C # API в Visual Studio 2017. Отладка не началась и отображается сообщение об ошибке, например
Есть идеи об этом сообщении об ошибке?
Ответы:
Если вы загрузили файл из Интернета, отдельно или внутри файла .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
ps> Get-ChildItem -Path '<YOUR-SOLUTION-PATH>' -Recurse | Unblock-File
unblock
варианта.
Ни один из этих ответов у меня не сработал, мне пришлось сделать следующее:
Источник: https://superuser.com/q/44503
file://domain.com
сработало, спасибо! контекст: капитальный ремонт сервера переместил наши файлы в DFS; домен Windows таков, domain.com
что теперь находятся файлы, в \\domain.com\...
которых могла возникнуть проблема.
.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.
Дополняя ответ @ lasse-v-karlsen . Чтобы рекурсивно разблокировать все файлы, запустите из PowerShell от имени администратора в нужной папке:
gci -recurse | Unblock-File
ссылка на источник: Как разблокировать файлы, загруженные из Интернета? - Winhelponline
https://www.winhelponline.com/blog/bulk-unblock-files-downloaded-internet/
Хотя это более старый вопрос, я потратил несколько часов, отслеживая способ обработки этой ошибки, когда она применяется к нескольким файлам, расположенным во вложенных папках по всему проекту.
Чтобы исправить это для всех файлов в проекте , Visual Studio -> Инструменты -> Параметры -> Параметры доверия и добавьте путь к проекту в качестве надежного пути.
Если вы используете OneDrive или любой аналогичный сетевой диск, у вас есть 2 варианта:
1) самый простой - переместить папку в локальный каталог на вашем ПК (например: C :).
2), но если вы хотите продолжать использовать OneDrive, я бы порекомендовал добавить его на надежные сайты в параметрах Internet Explorer, и это решит проблему.
Решение: отредактируйте и сохраните файл!
Из VisualStudio перейдите в представление и разверните, чтобы увидеть файл resx.
В контекстном меню выберите OpenWith ... XML (Text) Editor .
Просто добавьте пробел в конце и сохраните.
У меня была эта проблема с файлами resx в моем решении. Я использую Onedrive. Однако ни одно из вышеперечисленных решений не исправило его.
Проблема заключалась в том, что значок, который я использовал, находился в файлах MyWindow.resx для окон.
Я удалил это, а затем взял значок из папки ресурсов App Local Resources.
private ResourceManager rm = App_LocalResources.LocalResources.ResourceManager;
..
InitializeComponent();
this.Icon = (Icon)rm.GetObject("IconName");
Это произошло после обновления до VS2019.
Если, как и я, вы прилежно следовали всем приведенным выше решениям и ошибка все еще существует, попробуйте закрыть и снова открыть Visual Studio.
Очевидно, я знаю, но, возможно, я не единственный, кто потерял голову после того, как целый день смотрел на экран компьютера.
У меня ничего из вышеперечисленного не сработало.
Это случилось со мной после того, как я добавил новую кнопку в панель инструментов winform. Когда кнопка использует изображение по умолчанию System.Drawing.Bitmap
(в свойстве изображения), у меня возникла эта ошибка. После того, как я изменил его на надежный образ (добавленный в мой файл ресурсов с установленной опцией «Разблокировать»), эта ошибка разрешилась сама собой.
Я наткнулся на еще одну возможную причину этой ошибки. Если вы используете символические ссылки NTFS в дереве проекта и, возможно, заменяете диски, вы можете получить эту ошибку, даже если они указывают на ваш локальный диск. В этом случае постарайтесь избежать ситуации, когда файлы .resx доступны через символические ссылки.
Ни одно из приведенных выше предложений не сработало для меня, поэтому я создал новый файл с немного другим именем и скопировал содержимое файла-нарушителя в новый файл, переименовал файл-нарушитель и переименовал новый файл с именем файла-нарушителя. Работал как шарм. Задача решена.