奇怪的VS2010构建故障发生在我的解决方案中

时间:2011-08-01 16:45:39

标签: c# .net visual-studio

我发现Visual Studio的行为很少见。其中一条评论可能是因为这些项目是从VS2008升级而来的。

具体而言。假设项目之间存在依赖关系,其中A取决于B,B取决于C,C取决于D。

A< - B< - ℃下 - d

现在说A中有错误,但B,C和D编译正确。

接下来发生的事情是VS每次尝试编译时都会编译所有四个项目。

命令:右键单击项目A,选择“生成”。

菜单中的相同行为:构建/构建A


有没有办法确保Visual Studio只在这些项目发生变化时才重建依赖项目?目前,Visual Studio重建所有依赖项。

我注意到以下链接上的建议是将解决方案划分为逻辑组(然后直接引用.dll)。如果这是前进的最佳方式,是否要将每个项目构建到一个公共。\ bin文件夹,然后从那里引用?

相关问题:Visual studio keeps building everything

如果我能保留一个大的解决方案文件,那就太棒了。

更新:

  • 在此处描述的详细构建模式中发现了警告:http://support.microsoft.com/kb/2516078但它似乎并不相关。我仍然要解决这个问题。 ( NOW FIXED 通过使用$(VAR)环境变量手动重新引用项目+路径提示)

  • 直接将笔记本电脑指向笔记本电脑。由于过热,CPU受到限制。

  • 完成了每个项目并关闭了自动序列化(在项目属性/构建屏幕中找到)

  • 增加了工具/选项/构建和运行中的最大并行构建数。我不认为这会有所帮助,因为它只是一台带有两个核心的笔记本电脑,但确实如此。

  • 看到'先前已成功构建'...所以看起来像 所期望的行为经常发生(仍在调查中)。现在情况要好得多。

  • 仍然会通过详细的构建日志和整理过程。

2 个答案:

答案 0 :(得分:4)

您可能想要检查以下选项:

  

[x]仅在运行

上构建启动项目和依赖项
工具下的

- >选项 - >项目和解决方案 - >建立并运行。

enter image description here

答案 1 :(得分:1)

我不知道故障的原因。当我按F5时,VS似乎只构建了需要构建的东西。

但我有一个建议:充分利用“卸载项目”功能。如果您的解决方案仅包含项目,因为您引用它们,但这些项目本身并不依赖于您的解决方案中的任何其他项目,那么一旦它们构建完成,您就可以卸载它们。

例如,这是我目前的情况:

我正在为我的项目制作UI。我的UI只有一个解决方案。

我需要引用其他团队成员正在开发的一些库,但我自己很少对这些库进行任何更改。

所以我的解决方案包含大约15个项目,但其中只有10个是我的。除了我需要查看或更改该代码之外,不需要加载另外5个我引用的库。所以我只是让它们“卸载”。

每天或每两天我“重新加载”它们,从源代码控制中获取最新更改,重建,然后再次卸载它们。

我还卸载了一些我很少需要更改的项目,例如我的框架库。

这使我的解决方案变得灵活,因为当我构建解决方案时,实际上只构建了大约一半的代码。它还可以加速搜索并使解决方案资源管理器不那么混乱。