2012-10-11 64 views
0

我有用于MSBuild的C++和C#项目。Visual Studio在解决方案中构建非依赖项目

项目文件中的<ProjectReference>标签指定了相关性。

当我使用MSBuild从命令行构建特定项目时,一切正常。

但是,当我在Visual Studio 2010中构建特定的项目A时,某些项目将在哪个项目A不依赖的情况下重建。

什么会导致此类行为以及如何解决此问题?

+1

将msbuild日志级别设置为VS设置中的诊断,并在描述怪异行为后检查日志 - 通常很明显触发构建的原因是什么。 –

+0

我收到6000行输出我的解决方案... – sergtk

+0

这是非常详细的输出和非常简单=)。现在你可以找到确切的位置,哪里出现了意外重建的项目,原因是什么。毕竟它并不那么难;)。 –

回答

0

这可能是Project-A的依赖项之一取决于项目。 Visual Studio会建立所有的依赖关系。 e.g

项目A依赖于项目-B &项目-C 项目-C依赖于项目-X

的Visual Studio将建立项目-X,项目-C,项目-B和项目-A。

依赖walker是一个很好的工具来找出依赖关系图和完整的列表。

+0

为什么在使用MSBuild构建时一切正常?在处理依赖关系时,Visual Studio和MSBuild有什么区别? – sergtk

+0

可视化工作室通常会对代码进行代码搜索,因此它很可能会构建所有项目。本文有关于MSBuild的一些信息,这可能也有帮助。 http://blogs.msdn.com/b/visualstudio/archive/2010/12/21/incorrect-solution-build-ordering-when-using-msbuild-exe.aspx – arif

+0

文章中描述的问题在解决方案文件包含依赖关系,但我在解决方案文件中没有依赖项 - 我写了关于这个问题 – sergtk

相关问题