3

特定の .xml 内の各プロパティの名前と値にアクセスする MSBuild ファイルのプロパティを反復処理する方法はあります<PropertyGroup>か? おそらく次のようなものです:

<Project ToolsVersion="4.0" DefaultTargets="test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup Label="testPropertyGroup">
    <Property1>Value1</Property1>
    <Property2>Value2</Property2>
  </PropertyGroup>

  <Target Name="prop">
   <Message Text="Name=%(testPropertyGroup.Name)"/>
   <Message Text="Value=%(testPropertyGroup.Value)"/>
  </Target>

</Project>
4

2 に答える 2

0

私があなたを正しく理解しているなら、あなたはエコープロパティに相当するアリのようなものを求めていますか? これを取得する唯一の方法は、msbuild を /verbosity:detailed または /verbosity:diagnostic として実行することですが、その出力で情報を見つけるのは少し難しいと思います。私が見つけた最良の方法は、ターゲットを作成し、各プロパティのメッセージタスクを記述し (私が知っている長いスローグ)、プロジェクトでそれを InitialTargets の 1 つとして呼び出すことです。

<Project ToolsVersion="4.0" 
         DefaultTargets="prop" 
         InitialTargets="CheckProperties"
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup Label="testPropertyGroup">
    <Property1>Value1</Property1>
    <Property2>Value2</Property2>
  </PropertyGroup>


  <Target Name="CheckProperties">
    <Message Text="Property1: $(Property1)"/>
    <Message Text="Property2: $(Property2)"/>
  </Target>

  <Target Name="prop">
   <Message Text="Name=%(Names.Identity)"/>
   <!--<Message Text="Value=%(testPropertyGroup.Value)"/>-->
  </Target>

</Project>
于 2013-05-10T09:33:16.897 に答える