0

我有以下 Msbuild 属性文件列表。

C:\Build\Mainscript\Master.targets

C:\Build\Mainscript\Master.properties

C:\Build\Component1\build.comp1.properties

C:\Build\Component2\build.comp2.properties

         .
         .

C:\build\Component3\build.compn.properties

Component1.properties 具有如下解决方案列表

<Solution Include="C:\build\Component1\Mysoltuion.sln;">
      <Group>Firstcomp</Group>
      <AdditionalProperties>
        ValidateXaml=false;
        ReferencePath=$(DefaultReference);
      </AdditionalProperties>
      <IsRebuild>False</IsRebuild>
    </Solution>   

Component2.properties 具有如下解决方案列表

<Solution Include="C:\build\Component2\Mysoltuion.sln;">
      <Group>Firstcomp</Group>
      <AdditionalProperties>
        ValidateXaml=false;
        ReferencePath=$(DefaultReference);
      </AdditionalProperties>
      <IsRebuild>False</IsRebuild>
    </Solution>   

Master.properties 将具有所有组件的通用属性。

<Components Include="C:\Build\Comp1\Build.comp1.properties">
      <ComponentName>Comp1</ComponentName>
    </Components>

    <Components Include="C:\Build.CompN.Properties">
      <ComponentName>CompN</ComponentName>
    </Components>

我的目标如下,它帮助我构建所有组件

  <Target Name="BuildAll" Inputs="@(Components)" Outputs="%(Identity).Dummy">

    <MSBuild Projects="@(Components)"

             Targets="BuildComponent" />

  </Target>

大多数时候,我想单独构建一些特定的组件。如何单独传递特定组件。

4

1 回答 1

0

在此处查看您的类似问题的答案:
如何将项目逐个传递给另一个 msbuild 任务?

基本上,您可以像这样访问 ItemGroup 中每个项目的自定义元数据:

<Target Name="BuildAll" Inputs="@(Components)" Outputs="%(Identity).Dummy">
    <MSBuild Projects="%(Identity)" 
             Targets="%(ComponentName)" />
</Target>
于 2011-12-18T23:35:28.373 回答