MSBuild ITaskItem数组已过期
我正在为MSBuild创建一个自定义ITask,用于上载生成的输出文件。我正在使用一个web部署项目来发布我的应用程序,并连接到AfterBuild目标来完成我的自定义工作 如果我在第一次构建web应用程序时将文件添加到web应用程序中,我的自定义任务将无法识别最近添加的文件。为了使该文件显示在我的Itaskitem数组中,我必须首先在删除“后构建”目标的情况下进行构建,然后在“后构建”目标就位的情况下再次启动构建 以下是我的生成文件的外观:MSBuild ITaskItem数组已过期,msbuild,msbuild-task,itaskitem,Msbuild,Msbuild Task,Itaskitem,我正在为MSBuild创建一个自定义ITask,用于上载生成的输出文件。我正在使用一个web部署项目来发布我的应用程序,并连接到AfterBuild目标来完成我的自定义工作 如果我在第一次构建web应用程序时将文件添加到web应用程序中,我的自定义任务将无法识别最近添加的文件。为了使该文件显示在我的Itaskitem数组中,我必须首先在删除“后构建”目标的情况下进行构建,然后在“后构建”目标就位的情况下再次启动构建 以下是我的生成文件的外观: <ItemGroup> <
<ItemGroup>
<PublishContent Include="$(OutputPath)\**" />
</ItemGroup>
<Target Name="AfterBuild">
<UploadTask FilesToPublish="@(PublishContent)" />
</Target>
@(PublishContent)中的列表似乎是在构建开始时初始化的,而不是反映构建过程本身可能发生的任何更改
有什么想法吗
谢谢当项目文件首次加载时(当您首次打开Visual Studio或在解决方案资源管理器中“卸载”和“重新加载”项目时),您的项目组将得到评估 您可能需要的是在“后构建”目标中创建一个项目组作为任务。例如:
<CreateItem Include="$(OutputPath)\**">
<Output TaskParameter="Include" ItemName="OutputFiles"/>
</CreateItem>
其次是:
<Target Name="AfterBuild">
<UploadTask FilesToPublish="@(OutputFiles)" />
</Target>