Visual Studio重建未修改的项目
因此,正如标题所示,我现在有一个VS2010解决方案,其中包含约50个项目。如果我更改了没有引用的“顶级”项目,那么VS仍然会重建所有50个项目。我正在运行没有任何附加组件的Visual Studio 2010 Ultimate。我正在使用ILMerge将所有项目合并到一个文件中。 我已经通过检查较低级别的dll的时间戳进行了验证,即使它们的代码未被触及,它们也确实已被重建。 我已经阅读了以下所有回复和评论: Visual Studio 2008不断重建 Visual Studio不断构建所有内容 我的解决方案中出现奇怪的VS2010构建故障 在Visual Studio中重建C#项目的原因 但是它们中的大多数只是提供有关卸载项目的建议,以加快构建时间,但没有针对修复的具体建议。我试图弄清楚为什么VS认为这些依赖项目在不使用时需要重新构建并进行修复。 我已启用“工具>选项>项目和解决方案>构建并运行>仅在运行时构建启动项目和依赖项”,但没有任何效果。 另外,如果我只是重建仅具有8个(间接)依赖项的“中级”项目,那么即使未调用ILMerge并且没有修改任何依赖项,它仍将构建所有8个项目。 谢谢大家提供的任何见解。 添加 为了测试一些建议,我从头开始创建了一个新的WinForms项目。然后,我在该解决方案中创建了两个新项目。我将我的两个“最低级别”项目中的所有代码和资源(不是项目文件)复制到了两个全新的项目中(通过将文件和文件夹从资源管理器拖放到Visual Studio中的项目中)。 最低的项目称为B,没有引用任何其他项目。下一个项目A仅引用B。因此,一旦我在项目中添加了所需的.NET和外部程序集引用,就可以构建解决方案。 然后,我有了新的WinForm项目参考A,并进行了完整构建。因此,参考链为: WinForm- > A- > B 然后,我仅修改WinForm 并进行了标准构建(F6)。和以前一样,Visual Studio重建了所有三个项目。 在对项目B中的源文件进行系统地删除之后,我发现如果删除我的Resources.Designer.cs和Resources.resx(并注释掉使用.Properties.Resources那些资源的对象的代码),则对WinForm的修改将不再重建整个解决方案,而只会重建WinForm的。 将BResources.resx和B添加Resources.Designer.cs回项目B(但将引用的代码注释掉,以便没有任何资源的使用)将重新引入完整的构建行为。 为了查看我的资源文件是否损坏,我再次删除了它们,然后创建了一个新文件(通过Project Properties-> Resources),并重新添加了与以前相同的资源,它是一个Excel文件。使用此设置,仍将进行完全重建。 然后,我删除了单个资源,但是将资源文件保留在项目B中。即使没有添加资源,但是资源文件仍在项目中,也会发生完全(不需要)重建。 似乎仅将资源文件添加到(.NET 3.5)项目中,将导致Visual Studio 2010始终重建该项目。这是错误还是预期/预期的行为? 再次感谢大家!