visual-studio-2010 - 如何阻止 Visual Studio 构建未更改的依赖项?

标签 visual-studio-2010 build dependencies

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

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

谢谢。

最佳答案

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

  • 构建:编译和链接应用程序/项目所需的所有内容
  • 清理:删除作为构建一部分生成的所有文件。
  • 重建:执行 clean,然后执行 build

我的 Visual Studio 没有“(重新)构建全部”按钮,但它有一个“(重新)构建解决方案”按钮,所以我假设您是这个意思。我还将假设您所说的 rebuild PARENT 和 CHILD,您的意思是 build PARENT 和 CHILD,并且它不会重新编译项目。

BuildBuild Solution 选项不一样。

  • 执行 Build 将评估当前项目(及其依赖项),编译所需的任何内容。
  • 执行构建解决方案将评估解决方案中的所有项目,编译所需的任何内容。

所以,如果您有一个包含 3 个项目的解决方案:

  1. child
  2. 服务(取决于 child )
  3. 前端

那么,假设当前选中的项目是Service:

  • 构建:将评估/编译:子和服务
  • 构建解决方案:将评估/编译:子、服务和前端

现在,我相信 看到的是,当您在 Parent 上执行构建时,VS 正在对 Child 执行构建好吧,即使它没有改变。我希望它正在评估 Child,因为它需要知道它是否发生了变化。如果不执行评估,它就无法知道,这就是为什么在您的输出窗口中您会看到它对 Child 项目做了一些事情。这通常相当快,但如果您有很多依赖项,它确实会加起来。

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

一些选项:

  • 卸载您未更改的子项目(右键单击解决方案资源管理器并选择卸载)。这隐藏了依赖关系,因此它不会被编译)。
  • 停止让 Visual Studio 管理您的依赖项。最安全的方法是删除 Project Based 引用,而使用 Binary Based 引用(指向每个依赖项的编译输出)。但这可能是一项艰巨的任务,因为您必须自己管理项目构建。

我建议您三思而后行,并评估节省的时间(可能有一些)是否值得冒险,因为您有时可能无法构建您需要的所有东西,所以最终花时间追逐你的尾部。

关于visual-studio-2010 - 如何阻止 Visual Studio 构建未更改的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5888732/

相关文章:

mysql - MySql.Data.dll 中发生类型为 'MySql.Data.MySqlClient.MySqlException' 的第一次机会异常

haskell - cabal 使用(Haskell)

c# - 如何注入(inject)表示文件夹集合的依赖项?

python依赖+部署工具?

c# - 在 SQL Server 和 C# 中运行查询的结果不同

c - 构建解决方案时出现 LNK2019 错误。为什么?

c# - 当我打开解决方案时,如何让我的 VS2010 安装项目没有错误?

c++ - 使用英特尔编译器构建 boost 库

web-services - Gradle项目构建失败

ember.js - ember assets - "public" Assets 不应该被指纹识别但它们是?