C++ 如何让MSBuild在生成时始终将目标标记为过期?
我在Google测试项目中进行了一些单元测试。我想将这些测试作为msbuild脚本的一部分运行。我已将以下内容添加到我的C++ 如何让MSBuild在生成时始终将目标标记为过期?,c++,msbuild,googletest,C++,Msbuild,Googletest,我在Google测试项目中进行了一些单元测试。我想将这些测试作为msbuild脚本的一部分运行。我已将以下内容添加到我的vcxproj文件中: <Target Name="AfterBuild"> <Exec Command=""$(TargetPath)"" IgnoreExitCode="true" IgnoreStandardErrorWarningFormat="true" Cust
vcxproj
文件中:
<Target Name="AfterBuild">
<Exec Command=""$(TargetPath)""
IgnoreExitCode="true"
IgnoreStandardErrorWarningFormat="true"
CustomWarningRegularExpression=": error:"/>
</Target>
不幸的是,由于Exec
没有输入或输出,因此它只运行一次,并且不会导致vcxproj
本身被标记为过期
如何强制此
Exec
始终过期(以便它运行每个构建)?您可以在包含要测试代码的vcxproj
上添加DependsOnTargets
属性w/依赖项。这样,每次更新和构建代码时,您的单元测试都将执行。这就是现在正在发生的事情——在由一个默认目标文件创建的“构建”目标中调用AfterBuild。即使代码没有更改,我也希望测试能够运行。