-1

我在 VS2013 中混合了 C#/C++ 解决方案。每次我运行 build 时,其中一个 C++ 项目都会重新构建,即使没有任何更改。在诊断输出中它说:

1> Project not up to date because the following 1 build inputs were missing:
1>  up to date is missing: 'PROJECT_OUTPUT_PATH\TMP_RANDOMGUID.RSP'

当我从 cmd 行运行 MSBuild.exe 时,我得到以下输出:

"…\TMP_RANDOMGUID.RSP" does not exist; source compilation required.

请注意,每次运行 build 时随机 guid 都会发生变化。

此 .rsp 文件在其他 .obj 文件中被列为任务“LIB”的输入文件。

很多项目都依赖于这个,所以这触发了几乎整个解决方案的重建。

我在 MSDN 上发现 .rsp 是包含 MSBuild.exe 命令行开关的 MSBuild 响应文件。看起来项目已配置为每次编译都是通过生成的 .rsp 文件进行的,这可以在 Visual Studio 中关闭吗?

4

1 回答 1

-2

如果适用于您的环境,请执行以下步骤:

  1. 删除解决方案和项目的每个输出文件夹(通常称为“Debug”、“Release”、“x86”和“x64”)
  2. 删除解决方案和项目的每个预编译输出文件夹(通常称为“ipch”)
  3. 删除文件 *.filters、*.user、*.sdf、*.suo
  4. 使用干净的目标调用 msbuild:msbuild /t:clean
  5. 调用 msbuild:msbuild
  6. 它完成了。现在您应该能够仅重新编译基于文件更改的文件。
于 2016-03-17T04:41:54.193 回答