Die Datei resx konnte nicht verarbeitet werden, da sie sich im Internet oder in der eingeschränkten Zone befindet oder die Markierung des Webs in der Datei enthält

89

Beim Debuggen der c # API-Codierung in Visual Studio 2017 tritt ein Problem auf. Das Debuggen wurde nicht gestartet und es wird eine Fehlermeldung wie angezeigt

Geben Sie hier die Bildbeschreibung ein

Irgendeine Idee zu dieser Fehlermeldung?

Raju.Saravanan
quelle
12
Klicken Sie mit der rechten Maustaste auf die Datei und wählen Sie im Windows Explorer die Option Eigenschaften. Haben Sie unten im Dialogfeld Optionen zum Entsperren der Datei?
Lasse V. Karlsen
Great Lasse, jetzt funktioniert das Debuggen gut Dank dir.
Raju.Saravanan
3
Ist "das Zeichen des Netzes" das neue Zeichen des Tieres?
Conrad

Antworten:

146

Wenn Sie die Datei separat oder in einer ZIP-Datei oder ähnlichem aus dem Internet heruntergeladen haben, wurde sie möglicherweise "gesperrt", da sie als aus der Internetzone stammend gekennzeichnet ist. Viele Programme verwenden dies als Zeichen dafür, dass dem Inhalt nicht vertraut werden sollte.

Die einfachste Lösung besteht darin, mit der rechten Maustaste auf die Datei im Windows Explorer zu klicken, Eigenschaften auszuwählen. Am unteren Rand dieses Dialogfelds sollte die Option "Entsperren" angezeigt werden. Denken Sie daran, auf OK zu klicken, um die Änderung zu akzeptieren.

Wenn Sie die Datei aus einem Archiv erhalten haben, ist es normalerweise besser, das Archiv zuerst zu entsperren. Wenn die Datei als aus der Internetzone stammend markiert ist und Sie sie entpacken, wird dieses Flag möglicherweise auf viele der Dateien übertragen, die Sie gerade nicht archiviert haben. Wenn Sie zuerst die Blockierung aufheben, sollten die nicht archivierten Dateien in Ordnung sein.

Es gibt auch einen Powershell-Befehl dafür, Unblock-File :

> Unblock-File *

Darüber hinaus gibt es Möglichkeiten, Code zu schreiben, mit dem die Sperre ebenfalls aufgehoben wird.

Aus den Kommentaren von @ Defcon1: Sie können auch kombinieren Unblock-Filemit Get-ChildItemeiner Pipeline , dass deblockiert rekursiv Datei zu erstellen. Da Unblock-Filees nicht möglich ist, Dateien rekursiv selbst zu finden, müssen Sie Get-ChildItemdiesen Teil verwenden.

> Get-ChildItem -Path '<YOUR-SOLUTION-PATH>' -Recurse | Unblock-File
Lasse V. Karlsen
quelle
1
Vielen Dank für Ihre ausführliche Antwort.
Raju.Saravanan
1
Vielen Dank für die PowerShell-Referenz - sehr hilfreich beim Umgang mit vielen Dateien
Scotru
Warum war dieser Powershell-Befehl für mich so schwer zu finden? Vielen Dank! 👍
Neville
Mein Problem wurde behoben. Danke
Mohamed Uvais M
14
Ich habe Unblock-Datei im rekursiven Modus verwendet:ps> Get-ChildItem -Path '<YOUR-SOLUTION-PATH>' -Recurse | Unblock-File
Defkon1
62
  1. Öffnen Sie den Datei-Explorer. Navigieren Sie zum Projekt- / Lösungsverzeichnis
  2. Suche nach * .resx. -> Sie erhalten eine Liste der Resx-Dateien
  3. Klicken Sie mit der rechten Maustaste auf die resx-Datei, öffnen Sie die Eigenschaften und aktivieren Sie die Option 'Entsperren'.
  4. Wiederholen Sie # 3 für jede Resx-Datei.
  5. Laden Sie das Projekt neu.
Atul Sureka
quelle
10
Es gibt keine unblockOption.
Dafie
1
Die Option zum Entsperren wird im Bereich Attribute am unteren Rand der Registerkarte Allgemein angezeigt, wenn die Datei blockiert ist. Wenn es nicht blockiert ist, wird die Option nicht angezeigt.
Spadelives
1
Hat für mich gearbeitet! Gute Antwort!
Toby
4
Dies befindet sich im Datei-Explorer und nicht im Lösungs-Explorer von Visual Studio.
Ferus
Kann bestätigen, dass dies das Problem ist. Um den Kommentar von @ Dafie näher zu erläutern: Wenn kein Kontrollkästchen zum Entsperren vorhanden ist, wird die Datei bereits entsperrt. Das Problem wird von einem der anderen verursacht. Sie werden sehen, dass, wenn das Kontrollkästchen vorhanden ist, Sie es aktivieren und auf "Übernehmen" klicken, das Kontrollkästchen insgesamt verschwindet.
Sander Koldenhof
24

Keine dieser Antworten hat bei mir funktioniert, ich musste Folgendes tun:

  1. Startmenü> Geben Sie 'Internetoptionen' ein.
  2. Wählen Sie auf der Registerkarte Sicherheit die Option Lokale Intranetzone aus, und klicken Sie dann auf die Schaltfläche Standorte
  3. Klicken Sie auf die Schaltfläche Erweitert
  4. Datei eingeben: // [Computername]
  5. Stellen Sie sicher, dass " Serverüberprüfung erforderlich ... " deaktiviert ist

Quelle: https://superuser.com/q/44503

Baddack
quelle
1
Hinzufügen file://domain.comfunktioniert, danke! Kontext: Bei einer umfassenden Serverüberholung wurden unsere Dateien in die DFS verschoben. In der Windows-Domäne befinden sich domain.comnun die Dateien, in \\domain.com\...denen das Problem möglicherweise ausgelöst wurde.
Kodithic
Ich kann bestätigen, dass diese Lösung mein Problem beim Erstellen .slneiner Netzwerkfreigabe in einem lokalen Netzwerk löst . Fehlermeldung war: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
Ich kann auch bestätigen, dass nichts funktioniert hat. Ich habe die Datei: // [Computername] sowie die Netzwerkfreigabe-IP hinzugefügt, von der ich die SLN geladen habe (z. B. Datei: //10.0.0.0). Ich verwende Windows 7 Enterprise 64-Bit mit Internet Explorer Version 11.0.9600.19236 und Visual Studio 2019 Community Edition. Auch ein Windows-Neustart ist nicht erforderlich.
Marc
4

Obwohl dies eine ältere Frage ist, habe ich mehrere Stunden damit verbracht, einen Weg zu finden, um diesen Fehler zu beheben, wenn er sich auf mehrere Dateien bezieht, die sich im gesamten Projekt in Unterordnern befinden.

Um dies für alle Dateien in einem Projekt zu beheben , wählen Sie Visual Studio -> Extras -> Optionen -> Vertrauensstellungen und fügen Sie den Projektpfad als vertrauenswürdigen Pfad hinzu.

Vertrauenswürdige Visual Studio-Pfade

Cody J. Mathis
quelle
Das einzige, was für mich funktioniert hat, keiner der anderen hat funktioniert.
Ransems
4
  1. Suchen Sie den Pfad aus dem Fehlerprotokoll und öffnen Sie die Datei im Explorer. 2) Wählen Sie die Datei aus und klicken Sie mit der rechten Maustaste auf -> Eigenschaften
  2. Aktivieren Sie dann die Option "Entsperren" und klicken Sie auf "Anwenden" Geben Sie hier die Bildbeschreibung ein
maneesh
quelle
2

Wenn Sie OneDrive oder ein ähnliches Netzwerklaufwerk verwenden, haben Sie zwei Möglichkeiten:

1) Am einfachsten ist es, den Ordner in ein lokales Verzeichnis auf Ihrem PC zu verschieben (z. B. C :).

2) Wenn Sie OneDrive weiterhin verwenden möchten, würde ich empfehlen, es zu den vertrauenswürdigen Sites in den Internet Explorer-Optionen hinzuzufügen. Dadurch wird das Problem behoben.

Geben Sie hier die Bildbeschreibung ein

Carlos Gregorio
quelle
2

Lösung: Bearbeiten und speichern Sie die Datei!

Gehen Sie in VisualStudio zur Ansicht und erweitern Sie sie, um die Resx-Datei anzuzeigen

Klicken Sie mit der rechten Maustaste auf das Menü OpenWith ... XML (Text) Editor .

Fügen Sie einfach am Ende ein Leerzeichen hinzu und speichern Sie.

profimedica
quelle
Ich habe auch viele andere Möglichkeiten ausprobiert und bin gescheitert. Ich
gehe
2

Ich hatte dieses Problem mit Resx-Dateien in meiner Lösung. Ich benutze Onedrive. Keine der oben genannten Lösungen hat dies jedoch behoben.

Das Problem war, dass das von mir verwendete Symbol in den MyWindow.resx-Dateien für die Fenster enthalten war.

Ich habe das entfernt und dann das Symbol aus dem Ressourcenordner der lokalen Ressourcen der App abgerufen.

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

Dies geschah nach einem Update auf VS2019.

John Jacobson
quelle
1

Keines der oben genannten hat funktioniert.

  • Die Option "Entsperren" ist in den Explorer-Eigenschaften nicht vorhanden.
  • Das Neuerstellen einer Datei, das Hinzufügen eines Ordners (und einer Resx-Datei) zu Extras-> Optionen-> Vertrauensstellungen funktioniert nicht.

Die Lösung bestand darin, das Projekt lokal (vom Netzlaufwerk) zu kopieren.

Vadim
quelle
1

Wenn Sie wie ich alle oben genannten Lösungen sorgfältig befolgt haben und der Fehler weiterhin besteht , schließen Sie Visual Studio und öffnen Sie es erneut.

Natürlich, ich weiß, aber vielleicht bin ich nicht der einzige, der sich verwirrt hat, nachdem er den ganzen Tag auf einen Computerbildschirm gestarrt hat.

Ich lerne immernoch
quelle
1

Keines der oben genannten hat bei mir funktioniert.

Dies geschah mir, nachdem ich einem Toolstrip auf einer Winform eine neue Schaltfläche hinzugefügt hatte. Wenn die Schaltfläche das Standardbild von System.Drawing.Bitmap(in der Bildeigenschaft) verwendet, ist dieser Fehler für mich aufgetreten. Nachdem ich es in ein vertrauenswürdiges Image geändert hatte (eines, das mit aktivierter Option "Entsperren" zu meiner Ressourcendatei hinzugefügt wurde), wurde dieser Fehler von selbst behoben.

MX313
quelle
0

Ich bin auf einen anderen möglichen Grund für diesen Fehler gestoßen. Wenn Sie in Ihrem Projektbaum symbolische NTFS-Links und wahrscheinlich untergeordnete Laufwerke verwenden, wird dieser Fehler möglicherweise auch dann angezeigt, wenn sie auf Ihr lokales Laufwerk verweisen. Wenn dies der Fall ist, versuchen Sie, die Situation zu vermeiden, in der .resx-Dateien über Symlinks erreicht werden.

Michael Yutsis
quelle
Das war's. Ich hatte einen Symlink eingeführt, um einen Referenzpfadfehler in einem Code aus einem anderen Repo zu beheben, das ich selten verwende. Das Entfernen des Symlinks und stattdessen das Hacken des csproj behebt das Problem.
Christian
0

Keiner der oben genannten Vorschläge hat bei mir funktioniert, daher habe ich eine neue Datei mit einem etwas anderen Namen erstellt und den Inhalt der fehlerhaften Datei in die neue Datei kopiert, die fehlerhafte Datei umbenannt und die neue Datei mit dem Namen der fehlerhaften Datei umbenannt. Lief wie am Schnürchen. Problem gelöst.

gesown
quelle