2016-11-17 114 views
2

我喜欢使用VSTS(“视觉工作室团队服务”),但我有一个主要问题。如何在使用多个“团队项目”的源代码的“Visual Studio团队服务”中创建构建定义?

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

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

现在我想与下面的规则创建一些构建定义:

  1. ,如果有人犯下任何变化classlibrary的一个“团队项目”(如ClassLibrary1的),那么首先我们建立一个classLibrary解决方案,使用结果(DLL文件)将其提供给网站解决方案(例如websiteSolution1,websiteSolution2,websiteSolution3),最后构建网络解决方案(在不同的团队项目中但是具有相同的帐户)

  2. 如果有人提交更改为其中一个网站解决方案(例如websiteSolution1)然后fi首先我们建立每个班级图书馆的“团队项目”(例如, ClassLibrary1,ClassLibrary2)并使用结果(DLL文件)将其提交到网站解决方案中(例如websiteSolution1,) ,最后构建网络解决方案(该解决方案在不同的团队项目中但是具有相同帐户)

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

+0

您可以在构建期间通过调用Git命令在另一个存储库中获取其他文件,您可以检查我的答案。 –

回答

1

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

There是一个相关的用户声音,您可以投票。

解决方法:

你可以得到额外的文件中通过的git命令其他仓库(命令行构建的步骤,你需要检查允许脚本访问OAuth令牌在构建定义的选项标签)。

enter image description here

1.如果有人提交的任何改变classlibrary的一个“团队项目”(如ClassLibrary1的),那么首先我们建立一个classLibrary解决方案,使用的结果(DLL文件)给它喂食进入网站解决方案(例如网站解决方案1,网站解决方案2,网站解决方案3。),最后构建Web解决方案(这是在不同的团队项目,但相同的帐户)

步骤:

  1. 创建classlibrary项目的新构建定义/解决方案
  2. 添加PowerShell的构建步骤调用构建REST API来排队构建您的网站(检查this文章的代码)
  3. 检查持续集成(CI)并在此构建定义的触发器选项卡中设置分支过滤器

2.如果某人对网站解决方案之一(例如,然后首先我们建立每个类库“团队项目”(例如ClassLibrary1,ClassLibrary2),并使用结果(DLL文件)将它提交到网站解决方案中提交(例如websiteSolution1),最后构建Web解决方案(即在不同的团队项目,但相同的帐户)

步骤:

  1. 创建构建定义为网站解决方案
  2. 添加命令行构建步骤运行git命令来获取在另一个仓库classlibrary文件(参考前面的截图)
  3. 添加Visual Studio构建步骤以构建类库项目/解决方案
  4. 添加复制文件步骤以复制构建结果文件(例如, .dll文件)复制到网站项目的每个相关路径的classlibray引用所需的文件夹中。您可以在项目文件检查,

例如:

<Reference Include="ClassLibraryB"> 
     <HintPath>..\..\MSBuildDemoSolution1\ClassLibrary1\Lib\ClassLibraryB.dll</HintPath> 
    </Reference> 
  • 将Visual Studio生成步骤建立网站项目/解决方案
  • +0

    MSoft如何能错过这一块。从多个仓库构建它们非常重要,他们简单地不支持它。野生。 –

    相关问题