1

MSBuildファイルに次のターゲットがある場合:

<Target Name="Temp">
   <CallTarget Targets="CreateTestList" />
   <Message Text="TestList: -- @(TestAssembly) -- " />
   <Message Text="Testing &quot;%(TestAssembly.Identity)&quot;" />
</Target>   

<Target Name="CreateTestList">
     <CreateItem Include="**\bin\$(Configuration)\*Tests.dll">
          <Output TaskParameter="Include" ItemName="TestAssembly" />
     </CreateItem>
     <Message Text="TestList: -- @(TestAssembly) -- " />
     <Message Text="Testing &quot;%(TestAssembly.Identity)&quot;" />
</Target>

ターゲットのMessageステートメントで、ターゲットが@(TestAssemblyList)ItemGroupに入れTempたアイテムを出力するにはどうすればよいですか?CreateTestList

4

1 に答える 1

4

注意すべきことが2つあります。まず、CreateItem タスクは基本的に廃止されました。ターゲット内で ItemGroup を宣言するだけで読みやすくなります。2 つ目は、MSBuild がアイテムを発行する方法のため、CreateTestList ターゲットを CallTarget ではなく依存関係として実行する必要があるため、ほとんどの場合、有用性が制限されます。そう、

<Target Name="Temp" DependsOnTargets="CreateTestList">
   <Message
      ...
</Target>

<Target Name="CreateTestList">     
   <ItemGroup>
      <TestAssembly Include="**\bin\$(Configuration)\*Tests.dll">
   </ItemGroup>
   <Message
      ...
</Target>
于 2011-05-24T15:33:24.297 に答える