如何在MSBuild中于项目引用构建完成后执行指定目标?
答案
要确保RunAfterBuildingProjRefs目标在所有项目引用(比如你的p1)构建完成后执行,你需要把AfterTargets属性设置为ResolveProjectReferences。
为什么选这个目标?
MSBuild里的ResolveProjectReferences是处理项目引用的核心步骤——它不仅会解析所有你声明的ProjectReference,还会自动触发这些依赖项目的构建流程。只有当所有依赖项目都成功构建完成后,这个目标才会结束。把你的自定义目标绑定到它之后,完美契合你“等所有引用项目构建完再执行”的需求。
修改后的目标配置
<Target Name="RunAfterBuildingProjRefs" AfterTargets="ResolveProjectReferences"> <!-- 这里放你的目标逻辑 --> </Target>
补充说明
如果你实际需求是当前项目本身也构建完成后再执行这个目标(此时引用项目肯定已经构建完了),那也可以用AfterTargets="Build"。但从你的目标名称RunAfterBuildingProjRefs来看,ResolveProjectReferences是更精准的选择,它会在当前项目自身构建开始前就触发你的目标。
内容的提问来源于stack exchange,提问作者Andry
相关产品推荐
相关产品推荐

