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、Version = 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( String dir、ブール正規化)log4net.Config.XmlConfiguratorAttribute.ConfigureFromFile(Assembly sourceAssembly、ILoggerRepository targetRepository)のlog4net.Util.SystemInfo.get_ConfigurationFileLocation()で
失敗したアクションは次のとおりでした:デマンド失敗した最初のアクセス許可の種類:System.Security.Permissions.FileIOPermission失敗したアセンブリのゾーン:インターネット
未処理の例外:System.Security.SecurityException:構成セクション 'nant'にアクセスしようとしたときに、ConfigurationPermissionの要求が失敗しました。すべての呼び出し元がこのセクションのデータにアクセスできるようにするには、このセクションが宣言されている構成ファイルでセクション属性「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)at System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap、StackCrawlMark&stackMark)at System.Security.CodeAccessPermission.Demand()at System.Configuration.BaseConfigurationRecord。 CheckPermissionAllowed(String configKey、Boolean requirePermission、Boolean isTrustedWithoutAptca)---内部例外スタックトレースの終了--- System.Configuration.BaseConfigurationRecord.CheckPermissionAllowed(String configKey、Boolean requirePermission、Boolean isTrustedWithoutAptca)at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(文字列configKey、ブールgetLkg、ブールcheckPermission、ブールgetRuntimeObject、ブールrequestIsHere、Object&result、Object&resultRuntimeObject)System.Configuration.BaseConfigurationRecord.GetSection(String configKey)at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem。 System.Configuration.ConfigurationManager.GetSection(String sectionName)のGetSection(String sectionName)NAnt.Console.ConsoleStub.Framework.GetRuntimeFramework()at NAnt.Console.ConsoleStub.Main(String [] args)
(回答は近日中に、参照用の質問として投稿されます。..)
奇妙なことに、これは実行可能ファイルがNant 0.91アーカイブから抽出される方法に関連しています。 (これは実際に試してみるまで意味がありませんでしたが、実際に機能します...)
ソース: http://surfjungle.blogspot.com/2011/11/tip-running-nant-091-on-windows-7.html
ダウンロードしたNAnt 0.91 Zipファイルには追加のセキュリティ関連の設定を実行する必要があるという点で、問題はWindows 7のセキュリティに関連していることがわかりました:抽出する前に、Zipファイルを右クリックして、プロパティを選択する必要があります[全般]タブで、[ブロックを解除]というボタンをクリックし、[プロパティ]ウィンドウで[OK]をクリックします。ここで、目的の場所にファイルを抽出し、システムパス上にあることを確認し、新しいコマンドラインを開くと、NAntが正常に実行されます。
これと同じ問題がありましたが、[プロパティ]/[全般]タブにはブロック解除ボタンが含まれていませんでした。 (理由はわかりません。これは、VMWare Fusion仮想マシン内で実行しているという事実に潜在的に関連しているようです。)
この問題は、WindowsのビルトインZipエクストラクター以外の何かを使用してファイルを抽出した場合、解消されるようです。たとえば、7-Zipを使用してアーカイブを抽出しましたが、すべて正常に機能しました。