Nant 0.91 ile yapılandırma hatalarını nasıl çözerim?


106

Nant 0.91'i indirdikten sonra, yapılandırma veya güvenlikle ilgili oldukça şifreli yapılandırma hataları alıyorum (aşağıya bakın).

Nant çalıştırılabilir dosyalarımı 0.86'dan 0.91'e yükseltmeye çalışıyorum.

Bir Windows 7 makinesinde derlerken aşağıdaki sorunları nasıl çözebilirim?

log4net: ERROR XmlConfiguratorAttribute: ConfigurationFileLocation alma özel durumu. ConfigFile ve ConfigFileExtension özellikleri ayarlanmadığında ConfigurationFileLocation çözümlenebilmelidir. System.Security.SecurityException: 'System.Security.Permissions.FileIOPermission, mscorlib, Version = 4.0.0.0, Culture = nötr, PublicKeyToken = b77a5c561934e089' türü izin isteği başarısız oldu. System. String dir, Boolean normalize) log4net.Util.SystemInfo.get_ConfigurationFileLocation (), log4net.Config.

Başarısız olan eylem şuydu: Talep Başarısız olan ilk iznin türü: System.Security.Permissions.FileIOPermission Başarısız olan derlemenin Bölgesi: İnternet

İşlenmeyen Özel Durum: System.Security.SecurityException: Yapılandırma bölümü 'nant'a erişmeye çalışırken ConfigurationPermission isteği başarısız oldu. Tüm arayanların bu bölüm için verilere erişmesine izin vermek için, bu bölümün bildirildiği yapılandırma dosyasında bölüm özniteliğini 'requirePermission' eşit 'false' olarak ayarlayın. ---> System.Security.SecurityException: 'System.Configuration.ConfigurationPermission, System.Configuration, Version = 4.0.0.0, Culture = nötr, PublicKeyToken = b03f5f7f11d50a3a' türü izin isteği başarısız oldu. System.Security.CodeAccessSecurityEngine.Check (Object request, StackCrawlMark & ​​stackMark, Boolean isPermSet) at System.Security.CodeAccessSecurityEngine.Check (CodeAccessPermission cap, StackCrawlMark & ​​stackMark) at System.Security.CodeAccessPermission.

(Cevap yakında, referans için bir soru olarak gönderilecek ....)


NAnt 0.92 ve Windows 8.1 ile hala aynı sorun . Ancak bu beklenebilirdi. Windows 10 için de başka bir yorumda bulunabileceği gibi - eklenecek başka bir etiket var mı?
Wolf

Yanıtlar:


205

İşin garibi, bu, yürütülebilir dosyaların Nant 0.91 arşivinden nasıl çıkarıldığıyla ilgili. (Bu gerçekten denemeden bana mantıklı gelmedi, ama gerçekten işe yarıyor ...)

Kaynak: http://surfjungle.blogspot.com/2011/11/tip-running-nant-091-on-windows-7.html

Sorunun Windows 7 güvenliğiyle ilgili olduğunu buldum, çünkü indirilen NAnt 0.91 zip dosyasının, güvenlik ile ilgili ek yapılandırmanın gerçekleştirilmesi gerekiyor: ayıklamadan önce , zip dosyasına sağ tıklayıp Özellikler'i seçmeli ve Genel sekmesi altında düğmeyi tıklamalısınız. Engellemeyi Kaldır etiketli, ardından Özellikler penceresinde Tamam'ı tıklayın. Şimdi, dosyayı istediğiniz konuma çıkarın, sistem yolunda olduğundan emin olun, yeni bir komut satırı açın ve NAnt başarılı bir şekilde çalışmalıdır.


1
Ayrıca, indirilen .zip dosyasını yerel bilgisayarınıza kaydedin ve ardından Engellemeyi Kaldır ve ardından Ayıklama'yı yapın. Bunu, dosya bir ağ paylaşımına kaydedilirken denedim ve Windows engeli kaldırılmamış gibi çıldırdı. #ProTip
Brett Rigby

2
Bu çözümün Windows 10 için de işe yaradığını merak eden biri varsa
Sc0tTy

2
Başka bir (çeviri) tuhaflık: Almanca'da düğme etiketliZulassen
Wolf

12

Aynı sorunu yaşadım, ancak Özellikler / Genel sekmemde bir engellemeyi kaldırma düğmesi yoktu. (Neden olduğundan emin değilim; görünüşe göre bu, VMWare Fusion sanal makinesinin içinde çalıştığım gerçeğiyle ilgili olabilir.)

Dosyayı ayıklamak için Windows'un yerleşik ZIP çıkarıcısı dışında bir şey kullanırsam bu sorun ortadan kalkacak gibi görünüyordu. Örneğin, arşivi çıkarmak için 7-Zip kullandım ve her şey yolunda gitti.


Kesinlikle! Ancak sıkıştırmak için çoğunlukla 7-Zip kullansanız bile, sıkıştırmayı açarken doğru bağlam menüsü öğesine basmak bazen kafa karıştırıcıdır, çünkü yerleşik seçenek çok çekicidir ;)
Wolf

1

Powershell ile gerçeğin ardından tüm dosyaların engelini tekrar tekrar nasıl kaldıracağınız aşağıda açıklanmıştır. Garip bir şekilde, unblock-file yalnızca boru üzerindeki pspath özelliğini denetler.

get-childitem -recurse c:\nant-92 | 
get-item -stream zone.identifier -erroraction silentlycontinue | 
foreach { $_.pspath = $_.pspath -replace ':zone.identifier'; $_ } | 
unblock-file

Elbette bunu, hangisinin engellendiğini bilmeden de şu şekilde yapabilirsiniz:

get-childitem -recurse c:\nant-92 | unblock-file
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.