5

我有一个包含多个项目的解决方案。我只更改其中一个中的代码,但每次我点击Ctrl++ShiftB,Visual Studio 都会重建所有其他代码。

我希望它构建其他项目,所以这很好。不好的是,通常情况下,它会看到无事可做。我在某个地方有一个不稳定的依赖,所以这不起作用。

是否有工具或宏(或开关)可以探索依赖关系树并告诉我哪些文件丢失或过期,以便我可以让它停止?

我知道我可以通过(例如)触摸所有项目文件来解决这个特定情况。

不幸的是,当文件配置为生成输出文件时,我经常看到这种情况(例如,IDL 文件配置为输出类型库,但不包含“库”块,因此它永远不会创建 TLB )。

这不会通过触摸所有项目文件来解决,所以我正在寻找更通用的东西来添加到我的个人工具箱中,它可以很容易地告诉我为什么要重建文件,无论是因为它比依赖,或者因为项目被错误配置为期望永远不会生成的输出文件。

4

7 回答 7

1

如果我理解正确,您可以通过触摸所有项目文件来解决此问题。这可能是由具有未来最后修改时间的源文件引起的。

编辑:

我知道我可以通过(例如)触摸所有项目文件来解决这个特定的情况,但我想在我的个人技巧箱中添加一些东西,我可以在未来使用,在一般情况下。

我很困惑 - 这个问题的“一般情况”是什么?

于 2008-10-15T14:31:43.713 回答
1

在选项/项目和解决方案/构建和运行中,将 MSBuild 项目构建输出详细程度设置为详细。它应该让您了解它为什么要重建所有项目。

于 2008-10-15T15:11:05.833 回答
0

不是我发现的。如果您知道一个项目不会经常更改,您可以告诉配置管理器不要构建它。(右键单击解决方案,然后选择配置管理)

于 2008-10-15T14:26:57.373 回答
0

据我所知, ctrl + shift + b 默认绑定到 BuildSolution,这就是为什么要构建所有项目的原因。除了右键单击项目并按构建之外,我不确定您还能使用什么:)

于 2008-10-15T14:26:59.230 回答
0

您可能需要检查工具>选项>项目和解决方案,并检查您的选项是否设置为仅构建启动项目和依赖项而不是所有解决方案。

或者不要使用 ctrl+shirt+b 你应该在你想要构建的项目上简单地按 F6 :)

于 2008-10-15T14:31:00.563 回答
0

您可以使用 shift+F6 仅构建当前项目。

于 2008-10-15T14:32:58.547 回答
0

虽然没有直接回答我的问题:“有什么工具可以帮我解决这个问题吗?”,我通过使用 SysInternals Process Monitor 发现了具体问题:

项目配置了/analyze,需要Visual Studio Team Edition,但是这台PC上的版本是Visual Studio Professional,不支持。不幸的是,Visual Studio 中似乎存在一个错误,它认为应该创建 .pchast 文件,尽管它没有办法这样做。我在 Connect 上提出了这个问题。

我想我可能会为 Visual Studio Professional 编写一个宏,如果打开 /analyze,它只会在构建结束时创建一个空的 .pchast 文件......

于 2008-10-15T20:52:38.810 回答