gpt4 book ai didi

visual-studio - MSBuild:如何确保AfterBuild目标始终在C++项目中运行

转载 作者:行者123 更新时间:2023-12-04 05:47:01 30 4
gpt4 key购买 nike

我已将以下AfterBuild任务添加到.vcxproj文件中:

<Target Name="AfterBuild">
<Message Text="Hi" Importance="high" />
</Target>


它似乎仅在生成C ++代码的情况下运行(或者如果我进行重建):

1>------ Rebuild All started: Project: ConsoleApplication1, Configuration: Debug Win32 ------
1> stdafx.cpp
1> SomeClass.cpp
1> ConsoleApplication1.vcxproj ->
1> Hi
D:\Projects\CppTest\Debug\ConsoleApplication1.lib
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========


当C ++代码为最新时,它不会运行:

========== Build: 0 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========


如何使它始终运行?我正在使用Visual Studio 2015。

最佳答案

线

========== Build: 0 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========


意味着Visual Studio根本不运行MSBuild。

对于增量构建,VS使用文件跟踪器来拦截由编译器和链接器执行的文件操作。结果可以放在ProjName.tlog文件夹中。在后续版本中,VS检查.read和.write文件中列出的文件的日期,并确定是否运行MSBuild。在Hashimi S.,Bartholomew S.-Using MSBuild,第二版-2013,“ File Tracker”一章中介绍了此功能。

一些可能的解决方案:


在自定义生成工具中使用FileTracker API。
在某些.write文件中手动写入工具生成的文件名(此解决方案很简单,但不能保证在将来的VS版本中可以使用)。
通过MSBuild而不是VS构建解决方案。
从bat文件构建解决方案,该文件首先调用devenv,然后调用您的工具。

关于visual-studio - MSBuild:如何确保AfterBuild目标始终在C++项目中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32397406/

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