ฉันจะแก้ไขข้อผิดพลาดในการกำหนดค่าด้วย Nant 0.91 ได้อย่างไร


106

หลังจากดาวน์โหลด Nant 0.91 ฉันได้รับข้อผิดพลาดในการกำหนดค่าที่ค่อนข้างคลุมเครือเกี่ยวกับการกำหนดค่าหรือความปลอดภัย (ดูด้านล่าง)

ฉันพยายามอัพเกรดไฟล์ปฏิบัติการ Nant ของฉันจาก 0.86 เป็น 0.91

ฉันจะแก้ไขปัญหาด้านล่างเมื่อสร้างบนเครื่อง Windows 7 ได้อย่างไร

log4net: ERROR XmlConfiguratorAttribute: Exception รับ ConfigurationFileLocation ต้องสามารถแก้ไข ConfigurationFileLocation เมื่อไม่ได้ตั้งค่าคุณสมบัติ ConfigFile และ ConfigFileExtension System.Security.SecurityException: ขออนุญาตประเภท 'System.Security.Permissions.FileIOPermission, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' ล้มเหลว ใน System.Security.CodeAccessSecurityEngine.Check (Object demand, StackCrawlMark & ​​stackMark, Boolean isPermSet) ที่ System.Security.CodeAccessSecurityEngine.Check (CodeAccessPermission cap, StackCrawlMark & ​​stackMark) ที่ System.Security.CodeAccessPermission.AppDemand () at String dir, Boolean normalize) ที่ log4net.Util.SystemInfo.get_ConfigurationFileLocation () ที่ log4net.Config

การดำเนินการที่ล้มเหลวคือ: ความต้องการประเภทของสิทธิ์แรกที่ล้มเหลวคือ: System.Security.Permissions.FileIOPermission โซนของแอสเซมบลีที่ล้มเหลวคือ: อินเทอร์เน็ต

Unhandled Exception: System.Security.SecurityException: Request for ConfigurationPermission ล้มเหลวขณะพยายามเข้าถึงส่วนการกำหนดค่า 'nant' ในการอนุญาตให้ผู้โทรทั้งหมดเข้าถึงข้อมูลสำหรับส่วนนี้ให้ตั้งค่าแอตทริบิวต์ส่วน "requirePermission" เท่ากับ "false" ในไฟล์กำหนดค่าที่มีการประกาศส่วนนี้ ---> System.Security.SecurityException: ขออนุญาตประเภท 'System.Configuration.ConfigurationPermission, System.Configuration, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a' ล้มเหลว ที่ System.Security.CodeAccessSecurityEngine.Check (Object demand, StackCrawlMark & ​​stackMark, Boolean isPermSet) ที่ System.Security.CodeAccessSecurityEngine.Check (CodeAccessPermission cap, StackCrawlMark & ​​stackMark) ที่ System.Security.CodeAccessPermission

(คำตอบกำลังจะมาโพสต์เป็นคำถามเพื่อการอ้างอิง .... )


ยังคงเป็นปัญหาเดียวกันกับNAnt 0.92และของ Windows 8.1 แต่นี่เป็นสิ่งที่คาดหวังได้ ดังที่สามารถพบได้ในความคิดเห็นอื่นสำหรับWindows 10 - มีแท็กอื่นที่จะเพิ่มหรือไม่?
Wolf

คำตอบ:


205

ผิดปกติมากพอสิ่งนี้เกี่ยวข้องกับวิธีการแยกไฟล์ปฏิบัติการจากไฟล์เก็บถาวร Nant 0.91 (สิ่งนี้ไม่สมเหตุสมผลสำหรับฉันจนกว่าฉันจะลองจริง แต่มันใช้งานได้จริง ... )

ที่มา: http://surfjungle.blogspot.com/2011/11/tip-running-nant-091-on-windows-7.html

ฉันพบว่าปัญหาคือความปลอดภัยของ Windows 7 ที่เกี่ยวข้องกับไฟล์ zip NAnt 0.91 ที่ดาวน์โหลดมาจำเป็นต้องมีการกำหนดค่าความปลอดภัยเพิ่มเติมที่จะดำเนินการ: ก่อนที่จะแตกไฟล์ต้องคลิกขวาที่ไฟล์ zip เลือก Properties และภายใต้แท็บ General ให้คลิกที่ปุ่ม ที่ระบุว่า Unblock จากนั้นคลิก OK บนหน้าต่าง Properties ตอนนี้แตกไฟล์ไปยังตำแหน่งที่คุณต้องการตรวจสอบให้แน่ใจว่าอยู่ในเส้นทางของระบบเปิดบรรทัดคำสั่งใหม่และ NAnt ควรทำงานได้สำเร็จ


1
นอกจากนี้ให้บันทึกไฟล์. zip ที่ดาวน์โหลดมาลงในคอมพิวเตอร์ของคุณจากนั้นเลิกบล็อกแล้วตามด้วยการแตกไฟล์ ฉันลองสิ่งนี้ในขณะที่ไฟล์ถูกบันทึกในเครือข่ายแชร์และ Windows ก็ประหลาดราวกับว่ามันไม่ได้ถูกปลดบล็อก #ProTip
Brett Rigby

2
ในกรณีที่ใครสงสัยว่าโซลูชันนี้ใช้ได้กับ Windows 10
Sc0tTy

2
ความแปลก (แปล) อื่น: ในภาษาเยอรมันปุ่มมีข้อความว่าZulassen
Wolf

12

ฉันประสบปัญหาเดียวกันนี้ แต่แท็บคุณสมบัติ / ทั่วไปของฉันไม่มีปุ่มปลดบล็อก (ฉันไม่แน่ใจว่าทำไมดูเหมือนว่านี่อาจเกี่ยวข้องกับการที่ฉันใช้งานในเครื่องเสมือน VMWare Fusion)

ปัญหานี้ดูเหมือนจะหมดไปถ้าฉันใช้บางอย่างนอกเหนือจากตัวแยก ZIP ในตัวของ Windows เพื่อแตกไฟล์ ตัวอย่างเช่นฉันใช้ 7-Zip เพื่อแยกไฟล์เก็บถาวรและทุกอย่างก็ทำงานได้ดี


อย่างแน่นอน! แต่แม้ว่าคุณจะใช้ 7-Zip เป็นส่วนใหญ่ในการบีบอัด แต่บางครั้งก็อาจสับสนในการกดรายการเมนูบริบทที่ถูกต้องเมื่อคลายการบีบอัดเนื่องจากตัวเลือกในตัวนั้นดึงดูดมาก)
Wolf

1

ต่อไปนี้เป็นวิธีการปลดบล็อกไฟล์ทั้งหมดแบบวนซ้ำหลังจากที่มี powershell น่าแปลกที่ unblock-file จะตรวจสอบคุณสมบัติ pspath บนท่อเท่านั้น

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

แน่นอนคุณสามารถทำได้โดยไม่ทราบว่าถูกบล็อกหรือไม่:

get-childitem -recurse c:\nant-92 | unblock-file
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.