Làm cách nào để giải quyết lỗi cấu hình với Nant 0.91?


106

Sau khi tải xuống Nant 0.91, tôi gặp một số lỗi cấu hình khá khó hiểu liên quan đến cấu hình hoặc bảo mật (xem bên dưới).

Tôi đang cố gắng nâng cấp các tệp thực thi Nant của mình từ 0,86 lên 0,91.

Làm cách nào để giải quyết các vấn đề dưới đây khi xây dựng trên máy Windows 7?

log4net: LỖI XmlConfiguratorAttribute: Ngoại lệ nhận ConfigurationFileLocation. Phải có khả năng giải quyết ConfigurationFileLocation khi thuộc tính ConfigFile và ConfigFileExtension không được đặt. System.Security.SecurityException: Yêu cầu cấp quyền loại 'System.Security.Permissions.FileIOPermission, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' không thành công. tại System.Security.CodeAccessSecurityEngine.Check (Object nhu cầu, StackCrawlMark & ​​stackMark, Boolean isPermSet) tại System.Security.CodeAccessSecurityEngine.Check (CodeAccessPermission cap, StackCrawlMark & ​​stackMark) tại System.Security.CodeAccessSecurityEngine.Check (CodeAccessPermission cap, StackCrawlMark & ​​stackMark) tại System.Security.Code Chuỗi dir, Boolean chuẩn hóa) tại log4net.Util.SystemInfo.get_ConfigurationFileLocation () tại log4net.Config.

Hành động không thành công là: Nhu cầu Loại quyền đầu tiên không thành công là: System.Security.Permissions.FileIOPermission Khu vực của assembly không thành công là: Internet

Unhandled Exception: System.Security.SecurityException: Yêu cầu ConfigurationPermission không thành công khi cố gắng truy cập phần cấu hình 'nant'. Để cho phép tất cả người gọi truy cập vào dữ liệu cho phần này, hãy đặt thuộc tính phần 'requestPermission' bằng 'false' trong tệp cấu hình nơi phần này được khai báo. ---> System.Security.SecurityException: Yêu cầu quyền của loại 'System.Configuration.ConfigurationPermission, System.Configuration, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a' không thành công. tại System.Security.CodeAccessSecurityEngine.Check (Đối tượng nhu cầu, StackCrawlMark & ​​stackMark, Boolean isPermSet) tại System.Security.CodeAccessSecurityEngine.Check (CodeAccessPermission cap, StackCrawlMark & ​​stackMarkmission) tại System.Security.CodeAccessPer.

(Sắp có câu trả lời, đăng dưới dạng câu hỏi để tham khảo ....)


vẫn còn vấn đề tương tự với NAnt 0.92Windows 8.1 . Nhưng điều này đã được mong đợi. Như có thể được tìm thấy trong một nhận xét khác cũng dành cho Windows 10 - có thẻ nào khác để thêm không?
Wolf,

Câu trả lời:


205

Thật kỳ lạ, điều này liên quan đến cách các tệp thực thi được trích xuất từ ​​kho lưu trữ Nant 0.91. (Điều này không có ý nghĩa gì đối với tôi cho đến khi tôi thực sự thử nó, nhưng nó thực sự hoạt động ...)

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

Tôi nhận thấy rằng vấn đề là liên quan đến bảo mật Windows 7 trong đó tệp zip NAnt 0.91 đã tải xuống cần cấu hình liên quan đến bảo mật bổ sung để được thực hiện: trước khi giải nén, người ta phải nhấp chuột phải vào tệp zip, chọn Thuộc tính và trong tab Chung, nhấp vào nút có nhãn Bỏ chặn, sau đó bấm OK trên cửa sổ Thuộc tính. Bây giờ, giải nén tệp đến vị trí mong muốn của bạn , đảm bảo tệp nằm trên đường dẫn hệ thống, mở một dòng lệnh mới và NAnt sẽ chạy thành công.


1
Ngoài ra, hãy lưu tệp .zip đã tải xuống vào máy tính cục bộ của bạn, sau đó Bỏ chặn nó, sau đó là Giải nén. Tôi đã thử điều này trong khi tệp được lưu trên một mạng chia sẻ và Windows khá bối rối như thể nó chưa được mở khóa. #ProTip
Brett Rigby

2
Trong trường hợp ai đó thắc mắc giải pháp này cũng hoạt động cho Windows 10
Sc0tTy

2
Một sự kỳ quặc khác (bản dịch): bằng tiếng Đức, nút này được gắn nhãnZulassen
Wolf,

12

Tôi cũng gặp sự cố này, tuy nhiên tab Thuộc tính / Chung của tôi không chứa nút bỏ chặn. (Tôi không chắc tại sao; có vẻ như điều này có khả năng liên quan đến thực tế là tôi đang chạy bên trong máy ảo VMWare Fusion.)

Sự cố này dường như sẽ biến mất nếu tôi sử dụng thứ gì đó ngoài trình giải nén ZIP tích hợp sẵn của Windows để giải nén tệp. Ví dụ: tôi đã sử dụng 7-Zip để giải nén kho lưu trữ và mọi thứ hoạt động tốt.


Chắc chắn rồi! Nhưng ngay cả nếu bạn chủ yếu sử dụng 7-Zip để nén, nó đôi khi gây nhầm lẫn để đạt bối cảnh mục trình đơn ngay khi giải nén, vì được xây dựng trong tùy chọn để thu hút ;)
Wolf

1

Dưới đây là cách bỏ chặn tất cả các tệp một cách đệ quy sau khi thực tế với powershell. Thật kỳ lạ, việc bỏ chặn-tệp chỉ kiểm tra thuộc tính pspath qua đường ống.

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

Tất nhiên bạn có thể làm theo cách này mà không cần biết cái nào bị chặn hay không:

get-childitem -recurse c:\nant-92 | unblock-file
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.