为什么我的项目在没有变化的情况下构建?

时间:2010-11-28 20:59:20

标签: c# visual-studio build projects csproj

我有很多C#(Visual Studio 2008)项目,其中一些项目正在更新程序集,即使没有任何更改(即使我选择Build而不是Rebuild)。我的大多数项目都不这样做,只是奇怪的几个。

我还没有找到项目之间的任何差异,并想知道是否有人有任何可能影响它的想法。为了清楚起见,我在构建之前没有进行任何代码更改,但是当我在Visual Studio中运行Build命令时仍然正在重新创建程序集。

对不起,我无法提供任何进一步的细节,但请告诉我是否有其他我可以查看的内容可能会有所帮助。

有人可以帮忙吗?我已经把头发弄了一会儿。

谢谢, 艾伦

3 个答案:

答案 0 :(得分:10)

实际上汉斯现在删除的答案指出了我正确的方向。将MSBuild的详细程度提升为诊断告诉我,VS认为项目始终已过期,因为一个文件将“复制到输出目录”设置为“始终复制”。其他项目紧随其后,因为他们依赖于该项目,注意到新构建的DLL比他们自己的输出文件更新。

将“复制到输出目录”更改为“如果更新则复制”解决了这个问题。

答案 1 :(得分:4)

有一种叫做项目依赖的东西。

当您的某个项目依赖于一个或多个其他项目并构建它时,您的项目所依赖的其他项目也将开始构建(如果需要)。此外,如果依赖项已更改,则将始终重建依赖于它们的项目。

您可以右键单击解决方案并选择项目构建顺序以显示一个窗口,该窗口说明了构建项目的顺序以及每个项目的依赖关系。

答案 2 :(得分:1)

我没有深入到这个底部,最终重建了其中一个项目。事实证明,这一切都源于这个一直在重建的项目。

我认为这与每次重建的嵌入式资源有关。

对不起,我对这个问题没有明确的答案。感谢RobV也提供了有用的信息。

艾伦