如何让MSBuild在生成时始终将目标标记为过期

How can I have MSBuild always mark a target out of date on build?

本文关键字:目标 过期 记为 MSBuild      更新时间:2023-10-16

我在谷歌测试项目中进行了一些单元测试。我想将这些测试作为msbuild脚本的一部分来运行。我已将以下内容添加到我的vcxproj文件中:

<Target Name="AfterBuild">
  <Exec Command="&quot;$(TargetPath)&quot;"
        IgnoreExitCode="true"
        IgnoreStandardErrorWarningFormat="true"
        CustomWarningRegularExpression=": error:"/>
</Target>

不幸的是,由于Exec没有输入或输出,因此它只运行一次,并且从未导致vcxproj本身被标记为过期。

如何强制此Exec始终过期(以便它在每次构建时都运行)?

您可以在包含要测试的代码的vcxproj上添加带有依赖项的DependsOnTargets属性。这样,每次更新和构建代码时,都会执行单元测试。