我有VS2012解决方案。其中一个项目A在运行时生成.h文件。此头文件由另一个项目B使用。项目A和项目B位于同一目录中。
但是,当Project B开始重建时,C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ V110 \ Microsoft.CppClean.targets将删除项目A生成的文件。由于此项目B不能找到该文件并构建失败。
如何避免在干净构建期间删除文件?这两个项目是否应该移到另一个目录?
请注意,Visual Studio 2008中不会出现此问题。
答案 0 :(得分:1)
您是否在解决方案中设置了build order?必须明确设置项目B依赖于A,除非您使用project referencing functionality built into VS直接设置两个项目之间的依赖关系。
答案 1 :(得分:1)
Is this header generated in the temp ("Intermediate") directory by a "Build Event"? If so, then Project B assumes it's a temp file and deletes it. This is because project B's cleanup finds the header in the temp directory but doesn't know that it's an output of Project A. Possible solutions:
答案 2 :(得分:0)
我在迁移到VS 2015时面临同样的问题。解决方案是设置"配置属性 - >通用 - >中间目录" to .. \\ $(ProjectName)\以便Build.CppClean不会清除其他不相关项目的以前的构建dll。这对我有用。