我有一个包含位置信息的项目组,该位置可能包含文件,也可能没有。如果在声明项目组时该位置没有文件,那么是否可以在以后重新评估项目组,以获取可能在新位置生成的文件,或者我必须在此时声明一个完全相同的项目组并使用它?
我有一个包含位置信息的项目组,该位置可能包含文件,也可能没有。如果在声明项目组时该位置没有文件,那么是否可以在以后重新评估项目组,以获取可能在新位置生成的文件,或者我必须在此时声明一个完全相同的项目组并使用它?
在静态方式下(作为的子元素声明在Target之外),项目组会在文件加载时被评估。在动态方式下(在<Target>内声明),项目组将在执行通过目标时被评估。对于在构建期间创建文件的情况,您真的应该使用动态项目组。
我认为你需要创建一个新的ItemGroup。它们只会被评估一次并且值会被保存,而不是用于选择文件的公式。因此,你无法“重新评估”这些项。
删除
项目,然后重新包含项目来重新定义ItemGroup:<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>