3

我喜欢使用 VSTS(“visual studio 团队服务”),但我遇到了一个大问题。

基本上,我有一些类库解决方案(例如 ClassLibrary1 、 ClassLibrary2 ),我在其他项目(例如 websiteSolution1、websiteSolution2、websiteSolution3)中使用它们作为参考。

当然,我喜欢为每个解决方案都有一个单独的 git repo(VSTS 中的团队项目),假设“团队项目”与它们包含的解决方案具有相同的名称。

现在我喜欢使用以下规则创建一些构建定义:

  1. 如果有人对某个类库“团队项目”(例如 ClassLibrary1)做出任何更改,那么首先我们构建该类库解决方案并使用结果(DLL 文件)将其提供给网站解决方案(例如 websiteSolution1、websiteSolution2、websiteSolution3。)和最后构建网络解决方案(在不同的团队项目中但在同一个帐户中)

  2. 如果有人对其中一个网站解决方案(例如 websiteSolution1)提交了任何更改,那么首先我们构建每个类库“团队项目”(例如 ClassLibrary1、ClassLibrary2)并使用结果(DLL 文件)将其输入到网站解决方案中有一个提交(例如 websiteSolution1, ),最后构建 Web 解决方案(在不同的团队项目中,但在同一个帐户中)

问题:当我创建一个新的“构建定义”时,我只能看到包含构建定义的同一个团队项目中的代码。

4

1 回答 1

1

不支持 VSTS git build 的多个存储库。(如果我们使用 TFVC,我们可以映射多个源)

一个相关的用户声音,你可以投票。

解决方法:

您可以通过 git 命令在其他存储库中获取其他文件(命令行构建步骤,您需要在构建定义的选项标签中检查允许脚本访问 OAuth 令牌)。

在此处输入图像描述

1.如果有人对某个类库“团队项目”(例如 ClassLibrary1)进行任何更改,那么首先我们构建该类库解决方案并使用结果(DLL 文件)将其提供给网站解决方案(例如 websiteSolution1、websiteSolution2、websiteSolution3. ),最后构建网络解决方案(它们在不同的团队项目中,但在同一个帐户中)

脚步:

  1. 为类库项目/解决方案创建新的构建定义
  2. 添加 PowerShell 构建步骤以调用构建 REST API 以对您的网站的构建进行排队(查看本文以获取代码)
  3. 检查持续集成 (CI) 并在此构建定义的触发器选项卡中设置分支过滤器

2.如果有人对其中一个网站解决方案(例如 websiteSolution1)进行了任何更改,那么首先我们构建每个类库“团队项目”(例如 ClassLibrary1、ClassLibrary2)并使用结果(DLL 文件)将其输入到网站解决方案中提交(例如 websiteSolution1, )并最终构建 Web 解决方案(在不同的团队项目中但在同一个帐户中)

脚步:

  1. 为网站解决方案创建构建定义
  2. 将命令行构建步骤添加到运行 git 命令以获取另一个存储库中的类库文件(请参阅上一个屏幕截图)
  3. 添加 Visual Studio 构建步骤以构建类库项目/解决方案
  4. 添加复制文件步骤以将构建结果文件(例如 .dll 文件)复制到网站项目的类库引用的相关路径的必要文件夹中。您可以在项目文件中检查它,

例如:

<Reference Include="ClassLibraryB">
      <HintPath>..\..\MSBuildDemoSolution1\ClassLibrary1\Lib\ClassLibraryB.dll</HintPath>
    </Reference>
  1. 添加 Visual Studio 构建步骤以构建网站项目/解决方案
于 2016-11-18T07:49:25.887 回答