[windows-7] Nant 0.91에서 구성 오류를 해결하려면 어떻게해야합니까?

Nant 0.91을 다운로드 한 후 구성 또는 보안과 관련된 다소 모호한 구성 오류가 발생합니다 (아래 참조).

내 Nant 실행 파일을 0.86에서 0.91로 간단히 업그레이드하려고합니다.

Windows 7 컴퓨터에서 빌드 할 때 아래 문제를 어떻게 해결할 수 있습니까?

log4net : ERROR XmlConfiguratorAttribute : ConfigurationFileLocation을 가져 오는 동안 예외가 발생했습니다. ConfigFile 및 ConfigFileExtension 속성이 설정되지 않은 경우 ConfigurationFileLocation을 확인할 수 있어야합니다. System.Security.SecurityException : ‘System.Security.Permissions.FileIOPermission, mscorlib, 버전 = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089’유형의 권한 요청이 실패했습니다. System.Security.CodeAccessSecurityEngine.Check (Object demand, StackCrawlMark & ​​stackMark, Boolean isPermSet) at System.Security.CodeAccessSecurityEngine.Check (CodeAccessPermission cap, StackCrawlMark & ​​stackMark) at System.Security.CodeAccessPermission.Demand () at System.AppDomainSetup.VerifyDir () log4net.Config의 log4net.Util.SystemInfo.get_ConfigurationFileLocation ()에서 String dir, Boolean normalize).

실패한 작업은 다음과 같습니다. Demand 실패한 첫 번째 권한의 유형은 다음과 같습니다. System.Security.Permissions.FileIOPermission 실패한 어셈블리의 영역은 다음과 같습니다. Internet

처리되지 않은 예외 : System.Security.SecurityException : 구성 섹션 ‘nant’에 액세스하는 동안 ConfigurationPermission 요청이 실패했습니다. 모든 호출자가이 섹션의 데이터에 액세스 할 수 있도록하려면이 섹션이 선언 된 구성 파일에서 섹션 속성 ‘requirePermission’을 ‘false’로 설정합니다. —> System.Security.SecurityException : ‘System.Configuration.ConfigurationPermission, System.Configuration, 버전 = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a’유형의 권한 요청에 실패했습니다. System.Security.CodeAccessSecurityEngine.Check (Object demand, StackCrawlMark & ​​stackMark, Boolean isPermSet) at System.Security.CodeAccessSecurityEngine.Check (CodeAccessPermission cap, StackCrawlMark & ​​stackMark) at System.Security.CodeAccessPermission.

(답변이 나올 예정이며 참고 용 질문으로 게시됩니다 ….)



답변

이상하게도 이것은 Nant 0.91 아카이브에서 실행 파일을 추출하는 방법과 관련이 있습니다. (실제로 시도하기 전까지는 말이되지 않았지만 실제로 작동합니다 …)

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

다운로드 한 NAnt 0.91 zip 파일에 추가 보안 관련 구성을 수행 해야 한다는 점에서 문제가 Windows 7 보안과 관련된 것으로 나타났습니다. 압축을 풀기 전에 zip 파일을 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 일반 탭에서 버튼을 클릭해야합니다. 차단 해제라고 표시된 다음 속성 창에서 확인을 클릭합니다. 이제 원하는 위치에 파일을 추출하고 시스템 경로에 있는지 확인하고 새 명령 줄을 열면 NAnt가 성공적으로 실행됩니다.


답변

이 같은 문제가 있었지만 속성 / 일반 탭에는 차단 해제 버튼이 없습니다. (이유를 잘 모르겠습니다. 이것이 VMWare Fusion 가상 머신 내에서 실행되고 있다는 사실과 잠재적으로 관련이있는 것 같습니다.)

이 문제는 Windows 내장 ZIP 추출기 이외의 것을 사용하여 파일을 추출하면 사라진 것 같습니다. 예를 들어, 7-Zip을 사용하여 아카이브를 추출했는데 모든 것이 잘 작동했습니다.


답변

다음은 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


답변