我有一个VS2012解决方案。其中一个项目A在运行时生成一个.h文件。此头文件由另一个项目B使用。项目A和项目B在同一目录中。
但是,当项目B开始重建时,C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppClean.targets将删除项目A生成的文件。由于此项目B无法再找到该文件,因此构建失败。
如何避免文件在干净的构建过程中被删除?是否应该将这两个项目移动到不同的目录?
请注意,在Visual Studio 2008中不会出现此问题。
发布于 2013-08-02 22:02:09
您是否在解决方案中设置了build order?必须明确设置项目B依赖于A,除非您使用project referencing functionality built into VS直接设置两个项目之间的依赖关系。
发布于 2015-07-28 23:44:07
这个头文件是在temp ("Intermediate")目录中由"Build Event“生成的吗?如果是,则项目B假定它是一个临时文件并将其删除。这是因为项目B的清理在temp目录中找到了头文件,但不知道它是项目A的输出。可能的解决方案:
发布于 2017-01-05 17:25:37
我在迁移到VS 2015时也遇到了同样的问题。解决方案是将“配置属性->常规->中间目录”设置为..\$(ProjectName)\,这样Build.CppClean就不会从其他不相关的项目中清除以前的构建dll。这对我很有效。
https://stackoverflow.com/questions/18018634
复制相似问题