重新评估msbuild项目组

时间:2011-03-28 18:48:35

标签: msbuild

我有一个项目组,其中包含可能包含或不包含文件的位置。如果在声明项目组的位置没有文件,是否可以在以后重新评估项目组以获取可能在新位置生成的文件,或者我是否必须声明此时相同的项目组并使用它?

3 个答案:

答案 0 :(得分:8)

在加载文件时,将评估静态声明的项目组(在Target之外,作为其子元素)。动态声明的项目组(在< Target>内)将在执行通过目标时进行评估。对于在构建期间创建文件的情况,您确实应该使用动态Item组。

答案 1 :(得分:4)

我认为你必须创建一个新的项目组。它们被评估一次并保存值,而不是用于选择文件的公式。因此,您无法“重新评估”这些项目。

答案 2 :(得分:0)

您可以通过首先removing项,然后重新包含项来重新定义项组:

<Target Name="Later on" >
   <ItemGroup>
      <ClCompile Remove="@(ClCompile)" />
      <ClCompile Include="something here of your choice" />
   </ItemGroup>
</Target>

或者,如果您不想删除项目,也可以随时将其添加或添加到以前存在的项目组中:

<Target Name="Later on" >
   <ItemGroup>
      <ClCompile Include="Add Even more stuff" />
   </ItemGroup>
</Target>