Bagaimana cara mengatasi kesalahan konfigurasi dengan Nant 0.91?

106

Setelah mengunduh Nant 0.91, saya mendapatkan beberapa kesalahan konfigurasi yang agak samar yang berkaitan dengan konfigurasi atau keamanan (lihat di bawah).

Saya mencoba untuk meningkatkan executable Nant saya dari 0,86 menjadi 0,91.

Bagaimana saya dapat menyelesaikan masalah di bawah ini saat membangun di mesin Windows 7?

log4net: ERROR XmlConfiguratorAttribute: Pengecualian mendapatkan ConfigurationFileLocation. Harus dapat menyelesaikan ConfigurationFileLocation jika properti ConfigFile dan ConfigFileExtension tidak disetel. System.Security.SecurityException: Permintaan izin jenis 'System.Security.Permissions.FileIOPermission, mscorlib, Versi = 4.0.0.0, Budaya = netral, PublicKeyToken = b77a5c561934e089' gagal. di System.Security.CodeAccessSecurityEngine.Check (Permintaan objek, StackCrawlMark & ​​stackMark, Boolean isPermSet) di System.Security.CodeAccessSecurityEngine.Check (tutup CodeAccessPermission, StackCrawlMark & ​​stackMark) di System.Security.CodeAccessPermission System.VanderSetup. String dir, Boolean normalize) di log4net.Util.SystemInfo.get_ConfigurationFileLocation () di log4net.Config.

Tindakan yang gagal adalah: Permintaan Jenis izin pertama yang gagal adalah: System.Security.Permissions.FileIOPermission Zona rakitan yang gagal adalah: Internet

Pengecualian Tidak Tertangani: System.Security.SecurityException: Permintaan ConfigurationPermission gagal saat mencoba mengakses bagian konfigurasi 'nant'. Untuk mengizinkan semua penelepon mengakses data untuk bagian ini, setel atribut bagian 'requirePermission' sama dengan 'false' di file konfigurasi tempat bagian ini dideklarasikan. ---> System.Security.SecurityException: Permintaan izin jenis 'System.Configuration.ConfigurationPermission, System.Configuration, Versi = 4.0.0.0, Budaya = netral, PublicKeyToken = b03f5f7f11d50a3a' gagal. di System.Security.CodeAccessSecurityEngine.Check (Permintaan objek, StackCrawlMark & ​​stackMark, Boolean isPermSet) di System.Security.CodeAccessSecurityEngine.Check (tutup CodeAccessPermission, StackCrawlMark & ​​stackMark) di System.Security.CodeAccessPermission.

(Jawaban akan datang, diposting sebagai pertanyaan untuk referensi ....)

Peter Bernier
sumber
masih masalah yang sama dengan NAnt 0.92 dan Windows 8.1 . Tapi ini bisa diharapkan. Seperti yang dapat ditemukan di komentar lain juga untuk Windows 10 - apakah ada tag lain untuk ditambahkan?
Serigala

Jawaban:

205

Anehnya, ini terkait dengan bagaimana executable diekstraksi dari arsip Nant 0.91. (Ini tidak masuk akal bagi saya sampai saya benar-benar mencobanya, tetapi itu benar-benar berhasil ...)

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

Saya menemukan bahwa masalahnya adalah keamanan Windows 7 yang terkait dengan file zip NAnt 0.91 yang diunduh memerlukan konfigurasi terkait keamanan tambahan untuk dilakukan: sebelum mengekstrak, seseorang harus mengklik kanan pada file zip tersebut, pilih Properties dan di bawah tab General, klik tombol berlabel Buka blokir, lalu klik OK pada jendela Properti. Sekarang, ekstrak file ke lokasi yang Anda inginkan , pastikan itu ada di jalur sistem, buka baris perintah baru dan NAnt harus berjalan dengan sukses.

Peter Bernier
sumber
1
Juga, simpan file .zip yang diunduh ke komputer lokal Anda, lalu Buka blokirnya, diikuti dengan Mengekstrak. Saya mencoba ini ketika file disimpan di jaringan bersama dan Windows ketakutan seolah-olah tidak diblokir. #ProTip
Brett Rigby
2
Jika ada yang bertanya-tanya, solusi ini juga berfungsi untuk Windows 10
Sc0tTy
2
Keanehan (terjemahan) lainnya: dalam bahasa Jerman tombolnya diberi labelZulassen
Wolf
12

Saya mengalami masalah yang sama, namun tab Properties / General saya tidak berisi tombol buka blokir. (Saya tidak yakin mengapa; sepertinya ini berpotensi terkait dengan fakta bahwa saya menjalankan di dalam mesin virtual VMWare Fusion.)

Masalah ini sepertinya hilang jika saya menggunakan sesuatu selain ekstraktor ZIP bawaan Windows untuk mengekstrak file. Misalnya, saya menggunakan 7-Zip untuk mengekstrak arsip dan semuanya berfungsi dengan baik.

Mike
sumber
Benar! Tetapi bahkan jika Anda kebanyakan menggunakan 7-Zip untuk mengompres, terkadang membingungkan untuk menekan item menu konteks yang tepat saat melakukan dekompresi, karena opsi bawaan sangat menarik ;)
Wolf
1

Berikut cara membuka blokir semua file secara rekursif setelah fakta dengan PowerShell. Anehnya, buka blokir file hanya memeriksa properti pspath melalui pipa.

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

Tentu saja Anda bisa melakukannya dengan cara ini, tanpa mengetahui mana yang diblokir atau tidak:

get-childitem -recurse c:\nant-92 | unblock-file
js2010
sumber