gpt4 book ai didi

c# - 未构建 csproj 时抑制 AfterBuild 目标

转载 作者:太空狗 更新时间:2023-10-29 18:09:03 24 4
gpt4 key购买 nike

我在 MSBuild 中有一个构建后目标来复制一些构建输出。

这作为对 AfterBuild 目标的依赖项链接(由 Microsoft.CSharp.targets 公开):

<Target Name="AfterBuild" DependsOnTargets="InstallUtil;CopyPostBuildFiles" />

如果构建实际上没有重新构建,是否有任何方法可以避免文件被复制?

例如,当 MSBuild 依赖项分析断言项目不需要构建,因为它的源文件都没有更新时,它不会构建,但仍会执行我的复制目标。有什么办法可以避免这种情况吗?

最佳答案

我刚刚用谷歌搜索并找到了这个多年的答案。我找到了一种方法,通过从核心目标中窃取一个想法来更容易地做到这一点。覆盖 BeforeBuild 和 AfterBuild 并执行如下操作:

  <Target Name="BeforeBuild">
<PropertyGroup>
<MyBeforeCompileTimestamp>%(IntermediateAssembly.ModifiedTime)
</MyBeforeCompileTimestamp>
</PropertyGroup>
</Target>

<Target Name="AfterBuild">
<CallTarget Condition="$(MyBeforeCompileTimestamp) !=
%(IntermediateAssembly.ModifiedTime)" Targets="MyTarget" />
</Target>

关于c# - 未构建 csproj 时抑制 AfterBuild 目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/516227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com