为什么获胜';当它所依赖的C#项目被修改时,C++项目是否会自动重建

本文关键字:项目 修改 C++ 是否 重建 获胜 依赖 为什么 | 更新日期: 2023-09-27 18:01:05

我有一个Visual Studio 2012解决方案,其中包括一个C#项目Addin和一个C++项目Shim。如果我对Addin(C#(进行更改,我希望Shim(C++(重建,但我似乎无法实现。当我按F5时,Addin重建,但Shim没有。如果我Rebuild Solution,那也没关系,但解决方案中还有很多其他项目,每次都要花很长时间。

我正在使用64位处理器在64位Windows Pro 8.0上运行Visual Studio 2012 Update 4。

这就是我迄今为止所尝试的:

  • 通过"项目依赖项…"使Shim依赖于Addin

  • Shim设置为参考Addin

  • (已添加引用(将"引用程序集输出"answers"链接库依赖项"设置为True

  • Addin的项目文件夹和输出文件夹添加到Shim的properties=>Config=>C/C++下的"Additional Include Directories">

  • 阅读本文:Visual Studio 2012;当依赖关系发生变化(没有好的(时,不能在运行中构建项目

  • 阅读本文:VS 2012不构建依赖项目(将Shim的中间文件夹更改为新文件夹没有工作(

  • 通过检查objbin文件夹(即(检查Addin是否正确重建

  • 检查Shimobjbin文件夹是否有任何更改(没有(

  • 阅读以下文章:Visual Studio/MSBUILD在更新源文件时不更新.lib文件,不重建可执行文件但重新编译对象文件(不相关,因为如果我修改Shim,它会正确重建(

  • 正在检查生成输出日志。唯一的警告是Project file contains ToolsVersion="12.0". This toolset is unknown or missing.,我认为这是一个无关的NuGet(包管理器(错误,因为我运行的是VS2012而不是VS2013。

  • 阅读http://msdn.microsoft.com/en-us/library/ez524kew.aspx#sectionToggle6和http://msdn.microsoft.com/en-us/library/et61xzb3.aspx,这似乎表明我已经做了必要的事情。

再加上在谷歌上广泛搜索,尽可能多地浏览VS设置。

我知道我可以通过右键单击并选择"仅项目"=>重建来强制重建,但很容易忘记,所以我真的很想解决这个问题。有人能帮忙吗?

为什么获胜';当它所依赖的C#项目被修改时,C++项目是否会自动重建

听起来您可能只需要在构建c++项目之前清理它,以便它获取更新的c#输出。我相信"重建"操作基本上是先执行"清理",然后执行"重建",这可能就是项目重建对您有效的原因。