Dav*_*ave 20 msbuild visual-studio
我有一个msbuild项目,它从visual studio构建一个SLN文件,它包含所有项目(大约70多个项目),并且许多项目彼此依赖,这意味着它们需要按顺序构建 - 有时开发人员会忘记在解决方案文件中的visual studio中手动设置构建顺序,导致干净解决方案上的msbuild失败,因为某些内容无序构建/无法找到dll.
有没有办法让msbuild采取所有项目并计算出依赖关系并按顺序构建项目,如果我有这样做的话?使用MSBuild任务?使用当前尝试,它似乎只是按照它读取项目的顺序构建 - 如果我传入项目文件列表+路径.
目前我能想到解决这个问题的唯一方法是外部应用程序,它扫描proj文件和引用,然后每次手动创建一个解决方案..但这对于这么简单的事情来说似乎有些过分.
以前有人解决/见过这个吗?
虽然项目依赖关系很难维护并且不能在 .sln 文件之间共享,但项目引用受到尊重并且确实规定了一致的顺序 - 请参阅 .sln 文件ResolveReferences
中的任务Microsoft.Common.targets
。
旁白:“我的一个朋友”可能“在重构期间”不小心取消了他们的构建Task
及其DependsOnTargets
与任务的链接Microsoft.Common.targets
ResolveReferences
,最终ProjectReferences
没有以听起来像这里的问题的方式得到尊重。如果你读过一些帖子,你可能会觉得这一切都摇摇欲坠——事实并非如此;不稳定的部分是项目依赖项,而不是项目引用。
请参阅Dan Moseley 撰写的这篇优秀的 MSDN 博客文章,它真正解释了该主题,包括一些有用的解决方法策略。(通过这个与构建 xUnit.net 稍微相关的问题)。
如果您的所有依赖项目都在解决方案中并且您正在使用项目引用,则 Visual Studio 应管理您的依赖项并按该依赖项列表的顺序进行构建。
听起来您没有使用项目参考。我总是推荐项目参考。
归档时间: |
|
查看次数: |
20708 次 |
最近记录: |