Visual studio 2010 如何阻止Visual Studio生成未更改的依赖项?

Visual studio 2010 如何阻止Visual Studio生成未更改的依赖项?,visual-studio-2010,build,dependencies,Visual Studio 2010,Build,Dependencies,标题相当直白。如果我点击build按钮,它的行为就像“全部重建”按钮。如果我有两个项目,让我们称它们为父项目和子项目,然后我对父项目进行更改并单击“构建”按钮。VS中的默认行为是重建父级和子级,而它只应重建父级 我想知道这是否是VisualStudio中的一个选项,以及如何更改它 谢谢。您的问题中似乎有一些不一致之处,为了清楚起见,我将定义我使用的术语 构建:编译并链接应用程序/项目所需的所有内容 清除:删除生成过程中生成的所有文件 重建:执行清理,然后执行构建 我的VisualStudio

标题相当直白。如果我点击build按钮,它的行为就像“全部重建”按钮。如果我有两个项目,让我们称它们为父项目和子项目,然后我对父项目进行更改并单击“构建”按钮。VS中的默认行为是重建父级和子级,而它只应重建父级

我想知道这是否是VisualStudio中的一个选项,以及如何更改它


谢谢。

您的问题中似乎有一些不一致之处,为了清楚起见,我将定义我使用的术语

  • 构建:编译并链接应用程序/项目所需的所有内容
  • 清除:删除生成过程中生成的所有文件
  • 重建:执行清理,然后执行构建
我的VisualStudio没有一个“(重新)构建全部”按钮,但是它有一个“(重新)构建解决方案”按钮,所以我假设你是这个意思。我还将假设您所说的“重建父级和子级”,您的意思是“构建父级和子级”,并且它不会重新编译项目中的每个文件

生成和生成解决方案选项不同

  • 执行构建将评估当前项目(及其依赖项),编译所需的任何内容
  • 执行构建解决方案将评估解决方案中的所有项目,并编译所需的任何内容
因此,如果您有一个包含3个项目的解决方案:

  • 孩子
  • 服务(依赖儿童)
  • 前端
  • 然后,假设当前选择的项目是服务:

    • 构建:将评估/编译:子项和服务
    • 构建解决方案:将评估/编译:子级、服务和前端
    现在,我相信你们看到的是,当你们在父代上执行构建时,VS也在子代上执行构建,即使它并没有改变。我希望它是在评估孩子,因为它需要知道孩子是否改变了。如果不执行评估,它就无法知道,这就是为什么在输出窗口中,您会看到它对子项目做了一些事情。这通常是相当快的,尽管如果您有很多依赖项,它确实会增加

    如果您不希望VS在构建父级时评估您的依赖关系,那么您可以遵循一些方法,但您选择远离工具保护,因此除非您小心,否则可能会出现二进制不匹配等情况

    一些选择:

    • 卸载您未更改的子项目(在解决方案资源管理器中单击鼠标右键,然后选择“卸载”)。这会隐藏依赖项,因此不会对其进行编译)
    • 停止让visual studio管理您的依赖项。最安全的方法是删除基于项目的引用,而是使用基于二进制的引用(指向每个依赖项的编译输出)。但这可能是一项非常重要的任务,因为您必须自己管理项目构建

    我建议你仔细考虑你要问的是什么,并评估节省的时间(可能有一些)是否值得冒这样的风险,即你可能时不时地无法构建所需的一切,因此最终花时间追赶你的尾巴。

    右键单击解决方案资源管理器中的解决方案,选择属性

    从“配置属性”>“配置”中,可以将特定项目从生成过程中排除

    从“公共属性”>“项目依赖项”中,可以创建和删除项目依赖项

    希望这有助于


    Muse Extensions

    我在一个解决方案中遇到了类似的问题,大约有40个项目。对我来说,下面的设置感觉比其他答案危险得多

  • 在Visual Studio中,从生成菜单打开配置管理器
  • 活动解决方案配置下拉列表中选择
  • 输入名称(例如调试界面),复制设置或创建空配置。您应该可以安全地取消选择并创建新的项目配置,尤其是如果您只想缩短构建时间
  • 选择或取消选择要使用新配置生成的项目,然后关闭configuration Manager
  • 使用
    Ctrl+Shift+B
    或仅通过构建父项目来享受更短的构建时间。但是,如果希望所有项目都重新生成,请不要忘记更改为另一个生成配置。如果右键单击已取消选择的其他项目并选择“构建”
    ,则仍可以构建这些项目

  • 在MSDN中找到更多关于配置管理器的信息:./P>< P>我也有C++问题。即使我没有更改依赖项目的源代码或头文件,它们也会完全重新编译

    我关闭了所有相关项目的“全程序优化”。现在,只有更改源代码,我的项目才能重建。C++项目的选项可以在属性->配置属性> >一般.< /P>中找到。
    祝你好运

    Alt+B,你将构建你当前的项目。如果您不想在解决方案中生成所有项目,那么这是一个很好的快捷方式。

    请阅读本文:

    [HKEY\ U当前\用户\软件\ Microsoft\VisualStudio\12.0\General] “U2DCheckVerbosity”=dword:0000000 1

    当设置注册表项(我必须添加它)时,只需使用适用于您的VisualStudio版本。例如,14.0==VS2015


    所提供的诊断可以帮助您确定msbuild认为事情过时的原因。

    我刚刚在一个有数百个项目的解决方案中看到过类似的情况。每当你