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
Masz jakiś pomysł na temat tego komunikatu o błędzie?
Odpowiedzi:
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
ps> Get-ChildItem -Path '<YOUR-SOLUTION-PATH>' -Recurse | Unblock-File
unblockopcji.
Żadna z tych odpowiedzi nie zadziałała dla mnie, musiałem wykonać następujące czynności:
Źródło: https://superuser.com/q/44503
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.
.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.
Uzupełnianie @ lasse-v-karlsen answer . Aby odblokować wszystkie pliki rekurencyjnie, uruchom z PowerShell jako administrator w wybranym folderze:
gci -recurse | Unblock-File
link do źródła: Jak odblokować pliki pobrane z Internetu? - Winhelponline
https://www.winhelponline.com/blog/bulk-unblock-files-downloaded-internet/
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ę.
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.
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.
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.
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.
Ż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ł.
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.
Ż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.