【问题标题】:tfs 2017 build multiple solutions dependencytfs 2017 构建多个解决方案依赖项
【发布时间】:2018-02-10 02:47:25
【问题描述】:

如何为具有依赖关系的多个解决方案创建构建定义?

这里的背景:

有两种解决方案

解决方案 A 是类库包含一个对象类 'ClassA'

解决方案 B 是控制台程序,通过添加解决方案 A 生成的 dll 引用来使用“ClassA”。

我想使用一个 TFS 2017 构建定义来构建这两种解决方案。

它引发了错误:

   Main\Source\SolutionB\Program.cs (13, 13)
   Main\Source\SolutionB\SolutionB\Program.cs(13,13): Error CS0246:
   The type or namespace name 'SolutionA' could not be found (are you 
   missing a using directive or an assembly reference?)

如何配置解决方案B知道的构建定义以使用从解决方案A的构建生成的dll?

【问题讨论】:

    标签: tfs build build-definition


    【解决方案1】:

    您应该构建您的第一个项目,该项目将在第二个项目中用作 dll,而不是复制文件以构建工件;而不是将您的 dll 发布到您在第二个项目中引用的特定文件夹并最终构建您的第二个项目。

    您可以使用类似的过程检查此图像,就在下图中,它将工件发布到三个不同的位置,在您的情况下,它应该是一个发布任务。

    这是一种简单的方法;但如果您也将项目 A 用于其他项目,您可能需要使用 NuGet 包。我将把它描述为解决方案 2。

    解决方案 2: 您应该 create a Nuget packages 通过项目 A 的工件。您可以在自定义源文件夹中 host your Nuget packages。将您的第一个项目的包添加到您的项目中作为参考。您不需要做额外的事情,只需将 nuget restore 任务添加到您的构建定义中。如果需要,您可以在构建定义期间将您的第一个项目发布为 nuget 包。请查看how to restore and install neuget packages by build definiton

    【讨论】:

    • 您所描述的是一种糟糕的做法。二进制依赖项应作为 NuGet 包进行管理。
    • @DanielMann 这是解决这个问题的简单方法之一,它似乎正在工作,因为我的观点是一个糟糕的解决方案,工作总比没有好;另一方面,是的,你是对的,通过 nuget 包管理更好。我将编辑我的答案并添加此解决方案。谢谢。
    猜你喜欢
    • 2012-07-13
    • 1970-01-01
    • 2015-05-29
    • 2020-01-02
    • 1970-01-01
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    • 2018-05-24
    相关资源
    最近更新 更多