提问人:Farzad J 提问时间:11/18/2016 更新时间:11/22/2016 访问量:647
如何在“Visual Studio Team Services”中创建使用来自多个“团队项目”的源代码的生成定义?
How to create a build definition in "visual studio team services" that is using source codes from multiple "Team Projects"?
问:
我喜欢使用 VSTS(“Visual Studio 团队服务”),但我有一个主要问题。
基本上,我有一些类库解决方案(例如 ClassLibrary1 , ClassLibrary2 ),我将它们用作其他项目的参考(例如 websiteSolution1、websiteSolution2 、websiteSolution3。
当然,我喜欢为每个解决方案使用单独的 git 存储库(VSTS 中的团队项目),假设“团队项目”与它们包含的解决方案具有相同的名称。
现在,我想使用以下规则创建一些构建定义:
如果有人对某个类库“团队项目”(例如 ClassLibrary1)提交任何更改,那么首先我们构建该类库解决方案并使用结果(DLL 文件)将其输入网站解决方案(例如 websiteSolution1、websiteSolution2、websiteSolution3),最后构建 Web 解决方案(位于不同的团队项目中,但帐户相同)
如果有人对其中一个网站解决方案(例如websiteSolution1)进行了任何更改,那么首先我们构建每个类库“团队项目”(例如ClassLibrary1,ClassLibrary2)并使用结果(DLL文件)将其输入到网站解决方案中,并提交(例如websiteSolution1,) 最后生成 Web 解决方案(位于不同的团队项目中,但帐户相同)
问题: 当我创建新的“生成定义”时,我只能看到包含生成定义的同一团队项目中的代码。
答:
不支持 VSTS git build 的多个存储库。(如果使用 TFVC,我们可以映射多个源)
解决方法:
您可以通过 git 命令获取其他存储库中的其他文件(命令行构建步骤,您需要在构建定义的 Option 标签中选中 Allow Scripts to Access OAuth Token)。
1.如果有人对某个类库“团队项目”(例如ClassLibrary1)进行任何更改,那么首先我们构建该classLibrary解决方案并使用结果(DLL文件)将其输入网站解决方案(例如websiteSolution1,websiteSolution2,websiteSolution3),最后构建Web解决方案(位于不同的团队项目中,但相同的帐户)
步骤:
- 为类库项目/解决方案创建新的生成定义
- 添加 PowerShell 生成步骤以调用生成 REST API 以对网站的生成进行排队(查看本文以获取代码)
- 选中“持续集成 (CI)”,并在此生成定义的“触发器”选项卡中设置分支筛选器
2.如果有人对其中一个网站解决方案(例如websiteSolution1)进行任何更改,那么首先我们构建每个类库“团队项目”(例如ClassLibrary1,ClassLibrary2)并使用结果(DLL文件)将其输入到网站解决方案中,并提交(例如websiteSolution1,),最后构建Web解决方案(在不同的团队项目中,但相同的帐户)
步骤:
- 为 WebSites 解决方案创建生成定义
- 添加命令行构建步骤以运行 git 命令以获取另一个存储库中的类库文件(请参阅前面的屏幕截图)
- 添加 Visual Studio 生成步骤以生成类库项目/解决方案
- 添加复制文件步骤,将构建结果文件(例如 .dll 文件)复制到网站项目 classlibray 引用的相关路径的必要文件夹。你可以在项目文件中检查它,
例如:
<Reference Include="ClassLibraryB">
<HintPath>..\..\MSBuildDemoSolution1\ClassLibrary1\Lib\ClassLibraryB.dll</HintPath>
</Reference>
- 添加 Visual Studio 生成步骤以生成网站项目/解决方案
评论