Dot-Net

是否有顯示所有屬性名稱/值的 NAnt 任務?

  • November 27, 2013

是否有一個 NAnt 任務會回顯目前在建構期間設置的所有屬性名稱和值?可能相當於 Ant echoproperties任務的東西?

試試這個片段:

<project>
   <property name="foo" value="bar"/>
   <property name="fiz" value="buz"/>

   <script language="C#" prefix="util" >
       <code>
           <![CDATA[
           public static void ScriptMain(Project project) 
           {
               foreach (DictionaryEntry entry in project.Properties)
               {
                   Console.WriteLine("{0}={1}", entry.Key, entry.Value);
               }
           }
           ]]>
       </code>
   </script>
</project>

您可以保存並使用 nant 執行。

不,沒有任務或功能可以為您執行此操作。

我嘗試了 Brad C 建議的解決方案,但它們對我不起作用(在 x64 上使用 NAnt 0.92 執行 Windows 7 Profession)。但是,這適用於我的本地配置:

<target name="echo-properties" verbose="false" description="Echo property values" inheritall="true">
<script language="C#">
   <code>
   <![CDATA[
       public static void ScriptMain(Project project)
       {
       System.Collections.SortedList sortedByKey = new System.Collections.SortedList();
       foreach(DictionaryEntry de in project.Properties)
       {
           sortedByKey.Add(de.Key, de.Value);
       }

       NAnt.Core.Tasks.EchoTask echo = new NAnt.Core.Tasks.EchoTask();
       echo.Project = project;

       foreach(DictionaryEntry de in sortedByKey)
       {
           if(de.Key.ToString().StartsWith("nant."))
           {
               continue;
           }
           echo.Message = String.Format("{0}: {1}", de.Key,de.Value);
           echo.Execute();
       }
       }
   ]]>
   </code>
</script>
</target>

引用自:https://stackoverflow.com/questions/140616