Post MSBuild条件执行器?

Post MSBuild条件执行器?,post,msbuild,build,conditional,Post,Msbuild,Build,Conditional,我正在使用构建各种项目,您应该能够使用: 我确实找到了一个适合我需要的解决方案,尽管它可能不是最佳解决方案 请参见我对另一个问题的回答: 谢谢, Alan如果您可以在每个项目中添加以下内容: <Target Name="DoStuffWithNewlyCompiledAssembly"> <Exec Command="" /> </Target> 因此,如果在targetStriguredBycomilation属性中指定目标名称,则如果CoreCo

我正在使用构建各种项目,您应该能够使用:


我确实找到了一个适合我需要的解决方案,尽管它可能不是最佳解决方案

请参见我对另一个问题的回答:

谢谢,
Alan

如果您可以在每个项目中添加以下内容:

<Target Name="DoStuffWithNewlyCompiledAssembly">
    <Exec Command="" />
</Target>

因此,如果在
targetStriguredBycomilation
属性中指定目标名称,则如果
CoreComilate
运行,则目标将运行;如果跳过
CoreComilate
,则目标将不运行(例如,因为输出程序集已经是代码的最新版本)。

Hi,谢谢你的建议,很抱歉延迟回复。我现在正准备试试这个。我已经试过了,但不管项目是否已构建,它仍在执行命令。请参阅我的最新问题。有什么想法吗?进一步研究后,我可以看到AssembliesBuiltByChildProject确实包含我的程序集的名称。然而,无论该项目是否建成,该值都没有差异。。。这有点令人沮丧,因为距离太近了。有人能解释一下吗?
<Target Name="Name">
<MSBuild Projects="">
    <Output TaskParameter="TargetOutputs" ItemName="AssembliesBuiltByChildProjects" />
</MSBuild>
<Exec Command="" Condition="'@(AssembliesBuiltByChildProjects)'!=''" />
<MSBuild Projects="" >
   <Output TaskParameter="TargetOutputs" ItemName="AssembliesBuiltByChildProjects" />
</MSBuild>
<Message Text="Assemblies built: @(AssembliesBuiltByChildProjects)" /> <!-- just for debug -->
<Exec Command="" Condition="'@(AssembliesBuiltByChildProjects)'!=''" />
<Target Name="DoStuffWithNewlyCompiledAssembly">
    <Exec Command="" />
</Target>
<Target Name="Name">
  <MSBuild Projects="" Properties="TargetsTriggeredByCompilation=DoStuffWithNewlyCompiledAssembly" />
</Target>
<CallTarget Targets="$(TargetsTriggeredByCompilation)" Condition="'$(TargetsTriggeredByCompilation)' != ''"/>