首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >TFS / msbuild,构建项目引用

TFS / msbuild,构建项目引用
EN

Stack Overflow用户
提问于 2019-03-12 04:09:46
回答 2查看 280关注 0票数 -2

我正在努力让Azure Devops Server 2019 (on prem)构建我的复杂项目设置。

我有多个构建各种BizTalk应用程序的解决方案。其中一些解决方案引用了其他解决方案/存储库中的一些项目。这在Visual Studio中工作得很好(假设每个人都将自己的repos命名为默认值,他们确实这样做了)。

为了自动化这个构建,我创建了一个多阶段构建管道,它按顺序构建每个解决方案。

虽然解决方案1将成功生成,但当涉及到解决方案2时,msbuild任务将不会引用已作为项目引用包含在解决方案中的项目的输出。

这似乎是因为这些引用的项目没有标记为构建-因为没有它们,它们就不能构建自己,反过来在主解决方案中引用他们的其他项目,等等。

将所有内容捆绑到一个大的超级解决方案文件中是不可行的。

我希望msbuild来/reference的项目,已经在上一步中已经建立,因为每被包括为项目引用。但msbuild是一头复杂的野兽,我想不出一种方法来实现这一点。

我想要实现的目标有可能实现吗?有谁能告诉我正确的方向吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-23 02:20:38

msbuild似乎已更改为仅引用项目引用,并且您可以通过在运行msbuild时将属性OnlyReferenceAndBuildProjectsEnabledInSolutionConfiguration设置为true来将其恢复为引用所有引用。

来源:https://stackoverflow.com/a/25144169

已经确认这是可行的。

票数 0
EN

Stack Overflow用户

发布于 2019-06-22 21:28:54

我终于重新审视了这一点,并做了更多的实验。

在我看来,让TFS/msbuild到/reference其他项目输出的唯一方法是在解决方案构建配置中将它们标记为build。

现在,如果您在Visual Studio中执行此操作,并尝试构建一个具有来自另一个解决方案的项目的解决方案,则如果前一个解决方案尚未完全构建,则构建将失败(因为其他链接依赖项将不会构建)。这是有道理的。

但是使用TFS/msbuild,构建将会成功。据我所知,有一些魔术正在发生,以确保所有解决方案之间的依赖关系以某种方式得到解决。这可能是运气,可能是特定的行为(到目前为止,这对我来说是有效的)。

当然,问题是它与Visual Studio不兼容。因此,我在每个解决方案文件中都有一个额外的“构建”定义设置,其中所有项目都设置为构建。

这似乎是管理大量相互关联的解决方案的最简单方法,而不需要一个大的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55109633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档