Visual studio 2017'de c # API Kodlamada hata ayıklarken bir sorunla karşılaşıyorum. Hata ayıklama başlamadı ve aşağıdaki gibi bir hata mesajı gösteriliyor:
Bu hata mesajı hakkında bir fikriniz var mı?
Yanıtlar:
Dosyayı internetten ayrı olarak veya bir .zip dosyası veya benzeri bir dosya içinde indirdiyseniz, internet bölgesinden geliyor olarak işaretlendiği için "kilitlenmiş" olabilir. Birçok program bunu içeriğe güvenilmemesi gerektiğinin bir işareti olarak kullanacaktır.
En basit çözüm, Windows Gezgini'nde dosyaya sağ tıklamak, Özellikler'i seçmek ve bu iletişim kutusunun altında bir "Engellemeyi Kaldır" seçeneğiniz olmalıdır. Değişikliği kabul etmek için Tamam'ı tıklamayı unutmayın.
Dosyayı bir arşivden aldıysanız, genellikle önce arşivin engellemesini kaldırmak daha iyidir, eğer dosya internet bölgesinden geliyormuş gibi işaretlenmişse ve onu açarsanız, bu bayrak az önce arşivden çıkardığınız dosyaların çoğuna yayılabilir. Önce engellemeyi kaldırırsanız, arşivlenmemiş dosyalar iyi durumda olacaktır.
Bunun için bir Powershell komutu da var, Unblock-File :
> Unblock-File *
Ek olarak, kilidi de kaldıracak kod yazmanın yolları vardır.
@ Defcon1 tarafından yapılan yorumlardan: Dosyanın bloklarını özyinelemeli olarak kaldıran bir ardışık düzen oluşturmak için Unblock-File
ile birleştirebilirsiniz Get-ChildItem
. Yana Unblock-File
art arda kendisine göre dosyaları bulmak için bir yol vardır, kullanmak zorunda Get-ChildItem
o kısmını yapmak.
> Get-ChildItem -Path '<YOUR-SOLUTION-PATH>' -Recurse | Unblock-File
ps> Get-ChildItem -Path '<YOUR-SOLUTION-PATH>' -Recurse | Unblock-File
unblock
Seçenek yok .
Bu cevapların hiçbiri benim için işe yaramadı, aşağıdakileri yapmam gerekiyordu:
Kaynak: https://superuser.com/q/44503
file://domain.com
işe yaradı, teşekkürler! bağlam: Büyük sunucu revizyonu dosyalarımızı DFS'ye taşıdı; Windows etki alanı, sorunu tetiklemiş olabilecek domain.com
dosyalar artık bulunur \\domain.com\...
.
.sln
yerel bir ağda bir ağ içi paylaşım oluşturmak için sorunumu çözdüğünü onaylayabilirim . Hata mesajı şöyleydi: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 cevabını tamamlıyor . Tüm dosyaların engelini özyinelemeli olarak kaldırmak için, powershell'den istediğiniz klasörün içinde yönetici olarak çalıştırın:
gci -recurse | Unblock-File
kaynak bağlantısı: İnternetten İndirilen Dosyaların Engeli Nasıl Kaldırılır? - Winhelponline
https://www.winhelponline.com/blog/bulk-unblock-files-downloaded-internet/
Bu daha eski bir soru olmasına rağmen, proje boyunca alt klasörlerde bulunan birden çok dosyaya uygulandığında bu hatayı çözmenin bir yolunu bulmak için birkaç saat harcadım.
Bunu bir proje içindeki tüm dosyalar için düzeltmek için , Visual Studio -> Araçlar -> Seçenekler -> Güven Ayarları ve proje yolunu güvenilir bir yol olarak ekleyin.
Çözümümdeki resx dosyalarında bu sorunu yaşadım. Onedrive kullanıyorum. Ancak yukarıdaki çözümlerden hiçbiri sorunu çözmedi.
Sorun, kullandığım simgenin Windows için MyWindow.resx dosyalarındaydı.
Bunu kaldırdım, ardından simgeyi Uygulama Yerel Kaynakları kaynak klasöründen aldım.
private ResourceManager rm = App_LocalResources.LocalResources.ResourceManager;
..
InitializeComponent();
this.Icon = (Icon)rm.GetObject("IconName");
Bu, VS2019 güncellemesinden sonra oldu.
OneDrive veya benzer bir ağ sürücüsü kullanıyorsanız, 2 seçeneğiniz vardır:
1) kolay olanı, klasörü bilgisayarınızın içindeki yerel bir dizine taşımaktır (örneğin :. C :).
2) ancak OneDrive'ı kullanmaya devam etmek istiyorsanız, onu internet gezgini seçeneklerindeki güvenilir sitelere eklemenizi öneririm ve bu sorunu çözecektir.
Çözüm: Dosyayı düzenleyin ve kaydedin!
VisualStudio'dan Görünüm'e gidin ve resx dosyasını görmek için genişletin
Sağ tıklama menüsünden OpenWith ... XML (Metin) Düzenleyicisi'ni seçin .
Sadece sonuna bir boşluk ekleyin ve kaydedin.
Benim gibi, yukarıdaki tüm çözümleri özenle uyguladıysanız ve hata hala devam ediyorsa, Visual Studio'yu kapatıp yeniden açmayı deneyin.
Açıkçası, biliyorum, ama belki de bütün gün bir bilgisayar ekranına baktıktan sonra bulanık beyinli olan tek kişi ben değilim.
Yukarıdakilerin hiçbiri benim için işe yaramadı.
Bu, bir winform üzerindeki araç şeridine yeni bir düğme ekledikten sonra başıma geldi. Düğme System.Drawing.Bitmap
(görüntü özelliğinde) varsayılan görüntüsünü kullandığında bu hata benim için ortaya çıktı. Onu güvenilir bir görüntü olarak değiştirdikten sonra ('Kilidi Aç' seçeneği işaretlenmiş olarak kaynak dosyama eklendi) bu hata kendi kendine çözüldü.
Bu hatanın başka bir olası nedenine rastladım. Proje ağacınızda NTFS sembolik bağlantıları ve büyük olasılıkla yedeklenmiş sürücüler kullanıyorsanız, yerel sürücünüzü gösterseler bile bu hatayı alabilirsiniz. Bu durumda, .resx dosyalarına sembolik bağlantılar aracılığıyla erişildiğinde durumdan kaçınmaya çalışın.
Yukarıdaki önerilerin hiçbiri benim için işe yaramadı, bu yüzden biraz farklı bir adla yeni bir dosya oluşturdum ve sorun teşkil eden dosyanın içeriğini yeni dosyaya kopyaladım, sorun teşkil eden dosyayı yeniden adlandırdım ve yeni dosyayı sorun teşkil eden dosyanın adıyla yeniden adlandırdım. Bir cazibe gibi çalıştı. Sorun çözüldü.