.Net 解决方案中的多个项目 - 结合所有项目的构建工件
Posted
技术标签:
【中文标题】.Net 解决方案中的多个项目 - 结合所有项目的构建工件【英文标题】:Multiple Projects in .Net Solution - Combine Build Artifacts from all projects 【发布时间】:2020-05-16 13:31:54 【问题描述】:我有 2 个包含测试相关代码的解决方案。一个用于 UI 自动化,另一个用于 API。我结合了这两种解决方案,并且能够从这两种解决方案构建和运行测试,但是:
其中每一个都包含我想在一个项目下组合的相似配置。显然,两者都不需要相同的东西。我从 project2 中删除了配置,并创建了从 Proj1 到 Proj2 的引用。我构建了 Project1 并从 Project1 生成了良好的工件,但它不包含来自 Proj2 的所有工件。
以前,当我单独构建项目时,它会在 build 文件夹中生成 60 个文件,但现在要少得多。
问题: 如果我决定添加项目 #3 并向其添加配置。如何构建项目 3 并将所有项目组合到项目 #3 的 bin 文件夹中。
我希望我能说清楚。
基本上我希望能够构建 1 个项目,该项目将触发其余 2 个的构建并将所有工件拉到一起。
【问题讨论】:
为什么不将所有项目的构建输出文件夹更改为公共文件夹。这就是我们所做的。我们的解决方案有近 30 个项目。很少属于客户端,很少属于服务器。因此,我们创建了 Client 和 Server 文件夹,所有项目都将输出映射构建到其中之一。 谢谢。好主意。我会试试的。试图找出构建顺序,当您构建解决方案时,哪些项目首先构建。 【参考方案1】:正如 Ziggler 建议的那样,您可以更改构建输出文件夹以将所有工件中的所有工件合并到项目 #3 的 bin 文件夹中。
您可以通过在命令行中传递$(OutputPath)
属性来做到这一点。看来您正在使用类似TeamCity
、Azure Devops
或您的环境中的内容。
对于这些工具,我们可以添加 msbuild 参数,例如:/p:OutputPath="Path to project3's bin folder"
,如果您使用 msbuild 构建整个解决方案 (msbuild xx.sln
)。见Global Property。
关于构建顺序,可以添加项目依赖来控制构建顺序。 Msbuild 将识别项目依赖和项目引用,然后自动选择正确的顺序。希望对你有帮助:)
【讨论】:
谢谢。正是我想要的。我们使用 ADO。谢谢 @ylerner 嗨朋友,这个问题有什么更新吗?如果我的回答有助于解决您的问题,您可以 Accept it as an Answer ,这样它可以帮助遇到同样问题的其他社区成员,我们可以存档这个帖子,谢谢。)。如果问题仍然存在并阻止您,请随时告诉我,我愿意提供帮助:)以上是关于.Net 解决方案中的多个项目 - 结合所有项目的构建工件的主要内容,如果未能解决你的问题,请参考以下文章
Net Core 多项目开发(net core 类库项目使用)