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

C++ 如何让MSBuild在生成时始终将目标标记为过期?,c++,msbuild,googletest,C++,Msbuild,Googletest,我在Google测试项目中进行了一些单元测试。我想将这些测试作为msbuild脚本的一部分运行。我已将以下内容添加到我的vcxproj文件中: <Target Name="AfterBuild"> <Exec Command="&quot;$(TargetPath)&quot;" IgnoreExitCode="true" IgnoreStandardErrorWarningFormat="true" Cust

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

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

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


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

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

这就是现在正在发生的事情——在由一个默认目标文件创建的“构建”目标中调用AfterBuild。即使代码没有更改,我也希望测试能够运行。