Nie można przetworzyć pliku resx, ponieważ znajduje się w Internecie lub w strefie zastrzeżonej lub ma znak sieci Web w pliku

89

Mam problem podczas debugowania kodowania interfejsu API języka C # w programie Visual studio 2017. Debugowanie nie zostało rozpoczęte i wyświetlany jest komunikat o błędzie, taki jak

wprowadź opis obrazu tutaj

Masz jakiś pomysł na temat tego komunikatu o błędzie?

Raju.Saravanan
źródło
12
Spróbuj kliknąć plik prawym przyciskiem myszy i wybrać Właściwości w Eksploratorze Windowws. Czy na dole okna dialogowego są dostępne opcje odblokowania pliku?
Lasse V. Karlsen
Świetne Lasse, teraz debugowanie działa dobrze. Dziękujemy.
Raju.Saravanan
3
Czy „znak sieci” to nowy Znak bestii?
Conrad

Odpowiedzi:

146

Jeśli plik został pobrany z Internetu, osobno lub w pliku .zip lub podobnym, mógł zostać „zablokowany”, ponieważ jest oznaczony jako pochodzący ze strefy internetowej. Wiele programów użyje tego jako znaku, że treści nie należy ufać.

Najprostszym rozwiązaniem jest kliknięcie prawym przyciskiem myszy pliku w Eksploratorze Windows, wybranie Właściwości, a na dole tego okna dialogowego powinna znajdować się opcja „Odblokuj”. Pamiętaj, aby kliknąć OK, aby zaakceptować zmianę.

Jeśli masz plik z archiwum, zwykle lepiej jest najpierw odblokować archiwum, jeśli plik jest oznaczony jako pochodzący ze strefy internetowej i rozpakujesz go, flaga ta może rozprzestrzenić się na wiele plików, które właśnie cofnąłeś z archiwum. Jeśli najpierw odblokujesz, niezarchiwizowane pliki powinny być w porządku.

Do tego służy również polecenie Powershell, Unblock-File :

> Unblock-File *

Ponadto istnieją sposoby na napisanie kodu, który również usunie blokadę.

Z komentarzy @ Defcon1: Możesz również łączyć Unblock-Filez, Get-ChildItemaby utworzyć potok, który rekursywnie odblokowuje plik. Ponieważ Unblock-Filenie ma możliwości samodzielnego wyszukiwania plików rekurencyjnie, musisz użyć Get-ChildItemdo wykonania tej części.

> Get-ChildItem -Path '<YOUR-SOLUTION-PATH>' -Recurse | Unblock-File
Lasse V. Karlsen
źródło
1
Dziękuję za szczegółową odpowiedź.
Raju.Saravanan
1
Dzięki za odniesienie do programu PowerShell - bardzo pomocne w przypadku wielu plików
scotru
Dlaczego to polecenie Powershell było dla mnie tak trudne do znalezienia? Dzięki! 👍
Neville
Naprawiłem mój problem. Dzięki
Mohamed Uvais M
14
Użyłem pliku ps> Get-ChildItem -Path '<YOUR-SOLUTION-PATH>' -Recurse | Unblock-File
Unblock
62
  1. Otwórz eksplorator plików. Przejdź do katalogu projektu / rozwiązania
  2. Wyszukaj * .resx. -> Otrzymasz listę plików resx
  3. Kliknij prawym przyciskiem myszy plik resx, otwórz właściwości i zaznacz opcję „Odblokuj”
  4. Powtórz # 3 dla każdego pliku resx.
  5. Załaduj ponownie projekt.
Atul Sureka
źródło
10
Nie ma unblockopcji.
dafie
1
Opcja odblokowania pojawiłaby się w regionie Atrybuty u dołu zakładki Ogólne, jeśli plik jest zablokowany. Jeśli nie jest zablokowany, opcja się nie pojawia.
spadelives
1
Pracował dla mnie! Świetna odpowiedź!
Toby,
4
Żeby było jasne, jest to w eksploratorze plików, a nie w eksploratorze rozwiązań programu Visual Studio.
Ferus
Potwierdzam, że to jest problem. Aby rozwinąć komentarz @ Dafie: Jeśli nie ma pola wyboru odblokowania, plik jest już odblokowany. Problem jest spowodowany przez jeden z pozostałych. Zobaczysz, że jeśli jest tam pole wyboru, zaznaczysz je i klikniesz „zastosuj”, pole wyboru zniknie całkowicie.
Sander Koldenhof
24

Żadna z tych odpowiedzi nie zadziałała dla mnie, musiałem wykonać następujące czynności:

  1. Menu Start> wpisz „Opcje internetowe”.
  2. Wybierz strefę Lokalny intranet na karcie Zabezpieczenia , a następnie kliknij przycisk Witryny
  3. Kliknij przycisk Zaawansowane
  4. Wpisz plik: // [nazwa komputera]
  5. Upewnij się, że opcja „ Wymagaj weryfikacji serwera ... ” jest odznaczona

Źródło: https://superuser.com/q/44503

Baddack
źródło
1
Dodawanie file://domain.comzadziałało, dzięki! kontekst: Duży przegląd serwera przeniósł nasze pliki do DFS; domena Windows jest domain.comtak, że teraz znajdują się pliki, \\domain.com\...które mogły wywołać problem.
Kodithic
Mogę potwierdzić, że to rozwiązanie rozwiązuje mój problem polegający na utworzeniu .slnudziału sieciowego w sieci lokalnej. Komunikat o błędzie: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
Mogę również potwierdzić, że nic nie działało poza tym. Dodałem plik: // [nazwa komputera] oraz adres IP udziału sieciowego, z którego ładowałem plik .sln (np. Plik: //10.0.0.0). Używam 64-bitowego systemu Windows 7 Enterprise z przeglądarką Internet Explorer w wersji 11.0.9600.19236 i programu Visual Studio 2019 Community Edition. Nie jest też wymagane ponowne uruchomienie systemu Windows.
Marc
4

Chociaż jest to starsze pytanie, spędziłem kilka godzin na poszukiwaniu sposobu radzenia sobie z tym błędem, gdy dotyczy on wielu plików znajdujących się w podfolderach w całym projekcie.

Aby rozwiązać ten problem dla wszystkich plików w projekcie , Visual Studio -> Narzędzia -> Opcje -> Ustawienia zaufania i dodaj ścieżkę projektu jako zaufaną ścieżkę.

Zaufane ścieżki programu Visual Studio

Cody J. Mathis
źródło
Jedyna rzecz, która działała dla mnie, żadna z pozostałych nie działała.
okup
4
  1. Znajdź ścieżkę z dziennika błędów i otwórz plik w eksploratorze 2) wybierz plik i kliknij prawym przyciskiem myszy -> właściwości
  2. Następnie zaznacz opcję „odblokuj” i kliknij Zastosuj wprowadź opis obrazu tutaj
grzywa
źródło
2

Jeśli używasz OneDrive lub dowolnego podobnego dysku sieciowego, masz 2 opcje:

1) najłatwiejszym jest przeniesienie folderu do lokalnego katalogu na komputerze (np.: C :).

2), ale jeśli chcesz nadal korzystać z OneDrive, polecam dodanie go do zaufanych witryn w opcjach programu Internet Explorer, co rozwiąże problem.

wprowadź opis obrazu tutaj

Carlos Gregorio
źródło
2

Rozwiązanie: Edytuj i zapisz plik!

W programie VisualStudio przejdź do widoku i rozwiń, aby wyświetlić plik resx

Kliknij menu prawym przyciskiem myszy i wybierz opcję OpenWith ... XML (Text) Editor .

Po prostu dodaj spację na końcu i oszczędzaj.

profimedica
źródło
Próbowałem też wielu innych sposobów i zawiodłem. Zakładam, że niedawno odbyła się dodatkowa kontrola
profimedica
2

Miałem ten problem z plikami resx w moim rozwiązaniu. Używam Onedrive. Jednak żadne z powyższych rozwiązań tego nie rozwiązało.

Problem polegał na tym, że ikona, której użyłem, znajdowała się w plikach MyWindow.resx dla systemu Windows.

Usunąłem to, a następnie złapałem ikonę z folderu zasobów lokalnych zasobów aplikacji.

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

Stało się to po aktualizacji do VS2019.

John Jacobson
źródło
1

Żadne z powyższych nie działało.

  • We właściwościach eksploratora nie ma opcji „Odblokuj”.
  • Odtworzenie pliku, dodanie folderu (i pliku resx) do Narzędzia-> Opcje-> Ustawienia zaufania nie działa.

Rozwiązaniem było skopiowanie projektu lokalnie (z dysku sieciowego).

Vadim
źródło
1

Jeśli, tak jak ja, dokładnie wykonałeś wszystkie powyższe rozwiązania, a błąd nadal występuje, spróbuj zamknąć i ponownie otworzyć program Visual Studio.

Wiem, że to oczywiste, ale być może nie jestem jedyną osobą, która ma niewyraźną głowę po całodziennym wpatrywaniu się w ekran komputera.

Still_learning
źródło
1

Żadne z powyższych nie działało dla mnie.

Zdarzyło mi się to po dodaniu nowego przycisku do paska narzędzi w formularzu winform. Gdy przycisk używa domyślnego obrazu System.Drawing.Bitmap(we właściwości obrazu), pojawił się ten błąd. Po zmianie na zaufany obraz (dodany do mojego pliku zasobów z zaznaczoną opcją „Odblokuj”) ten błąd sam się rozwiązał.

MX313
źródło
0

Natknąłem się na inną możliwą przyczynę tego błędu. Jeśli używasz dowiązań symbolicznych NTFS w drzewie projektu i prawdopodobnie podmienionych dysków, możesz otrzymać ten błąd, nawet jeśli wskazują one na dysk lokalny. W takim przypadku staraj się unikać sytuacji, w której do plików .resx docierają dowiązania symboliczne.

Michael Yutsis
źródło
To było to. Wprowadziłem łącze symboliczne, aby naprawić błąd ścieżki odniesienia w jakimś kodzie z innego repozytorium, którego rzadko używam. Usunięcie linku symbolicznego i zamiast tego zhakowanie csproj rozwiązało problem.
Christian,
0

Żadna z powyższych sugestii nie zadziałała w moim przypadku, więc utworzyłem nowy plik o nieco innej nazwie i skopiowałem zawartość naruszającego pliku do nowego pliku, zmieniłem nazwę naruszającego pliku i zmieniłem nazwę nowego pliku na nazwę naruszającego plik. Działał jak urok. Problem rozwiązany.

gesown
źródło