visual-studio-2010 - Visual Studio 2010 随机表示命令行已更改并重建

标签 visual-studio-2010 c++-cli rebuild

Visual Studio 有时会因为一个小改动而决定重建我的整个大型项目。我将构建日志记录转到诊断以查看问题所在,这是我所看到的:

< Bunch of spam >
Outputs for C:\<snip>\PRECOMPILEDHEADERS.CPP:
    C:\<snip>\PRECOMPILEDHEADERS.OBJ
All outputs are up-to-date.
Forcing rebuild of all source files due to a change in the command line

...然后它会重建我的预编译头文件,然后是其他所有内容。

当我更改项目中的单个 .cpp 或 .h 文件时会发生这种情况。我没有更改项目设置中的任何内容。同样的变化也不会一直发生;这是随机的。

对这里发生的事情有什么想法吗?我在哪里可以获得更多信息?我尝试通过 http://blogs.msdn.com/b/vsproject/archive/2009/07/21/enable-c-project-system-logging.aspx 中的描述启用调试但它没有提供更多信息。我不知道这个“由于命令行更改而强制重建所有源文件”是从哪里来的。它不在任何工厂 MSBuild 文件中。

一些其他信息:它是一个 C++/CLI dll 项目,链接了许多其他项目,包括 C#、 native C++ 和其他 C++/CLI dll。我尝试从依赖项中删除所有 C# 项目,因为这些项目往往会导致问题,但这并没有改变它。我用谷歌搜索了那个特定的字符串,但我的情况与报告它的任何其他人的情况都不相符。 (一个是使用 Intel C++,另一个是命令行中的 MSBuild 并更改大小写。我正在从 Visual Studio 本身内部构建解决方案)。

编辑以解释我尝试过的常见修复:

我试过只构建项目。做同样的事情。

我没有包含任何不存在的 .h 文件。

我删除了 bin/object 文件夹并从头开始重建。这通常会使它在几个构建中消失,但随后它又会回来。

编辑#2:

在日志的前面发现了一些可疑的东西:

3>Using "ResolveNonMSBuildProjectOutput" task from assembly "Microsoft.Build.Tasks.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
3>Task "ResolveNonMSBuildProjectOutput"
3>  Resolving project reference "..\..\..\..\CommonCore\VS2010\Project1\Project1.vcxproj".
3>  Project reference "..\..\..\..\CommonCore\VS2010\Project1\Project1.vcxproj" has not been resolved.

这在我的几个项目中重复出现...我将追查它并查看项目引用提示路径是否有问题。

最佳答案

好吧,这是一个旧线程,但我最近遇到了同样的问题。 我的解决方案是禁用预编译 header - 现在一个源文件中的简单更改不会再导致“重建”。

关于visual-studio-2010 - Visual Studio 2010 随机表示命令行已更改并重建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7559972/

相关文章:

c# - 通过引用将 int 从 C++/CLI 传递到 C#

properties - 如何在 C++/CLI 接口(interface)中声明默认索引属性

c++ - C++/CLI 能否将抽象类从 C++ 返回到 C#?

visual-studio-2010 - IIS Express Visual Studio 集成 - 更改站点名称

c++ - 它是非标准的 std::pair 实现、编译器错误还是非标准代码?

.net - 在家里重建 .Net 程序集!

c - 重建所有项目或部分项目需要什么?

linux - 如何在不安装 RPM 的情况下将 "repackage"一个 RPM 文件(例如 cpio2rpm)?

visual-studio-2010 - 如何在 Visual Studio 2010 中自动填充 foreach 循环

visual-studio - VSPackage:在运行时修改工具栏按钮文本/工具提示