我使用以下代码示例来访问已标记为已释放的构建。我希望能够将实际安装文件的副本自动复制到我的Web服务器以供下载。我还需要在我的CRM中更新版本号等信息。
Dim tfsUri As Uri
tfsUri = New Uri("http://tfsServer:8080/tfs")
Dim TeamProj As New TfsTeamProjectCollection(New Uri("http://tfsServer:8080/tfs/Software"))
Dim buildServer As IBuildServer = DirectCast(TeamProj.GetService(GetType(IBuildServer)), IBuildServer)
Dim oBuilds As IBuildQueryResult
Dim oBuildDefSpec As IBuildDetailSpec
oBuildDefSpec = buildServer.CreateBuildDetailSpec("Main Project")
oBuildDefSpec.MinChangedTime = DateAdd(DateInterval.Day, -20, Now)
oBuildDefSpec.Quality = "Released"
oBuilds = buildServer.QueryBuilds(oBuildDefSpec)
For Each oBuild As IBuildDetail In oBuilds.Builds
Console.WriteLine(oBuild.DropLocation)
Next
oBuild.DropLocation返回以下内容 " \ DropServer \ Builds \ SoftwareName v2.03.03 \ SoftwareName QA v2.03.03_V2.03.03.6"
安装程序的实际位置如下所示 " \ DropServer \ Builds \ SoftwareName v2.03.03 \ SoftwareName QA v2.03.03_V2.03.03.6 \ TFSProjectName \ Install \ DiskImages \ DISK1 \ Software Setup Name.exe"
假设Install \ DiskImages \ Disk1"总是不变的,我希望能够获得TFSProjectName和实际的软件设置Name.exe"来自TFS的文字。
有没有办法,一旦我以编程方式访问构建定义,然后访问它来自的项目并获得实际的软件版本,安装项目输出名称等?如果有,我希望使用此信息自动完成拾取安装程序所需的路径,并获取更新我的CRM所需的其他信息。
答案 0 :(得分:0)
您可以使用MSBuild参数/target:publish
使MSBuild创建ClickOnce发布文件夹。
这是一篇博客,讨论如何编辑XAML构建定义以构建和发布ClickOnce应用程序: http://blogs.msdn.com/b/tfssetup/archive/2015/09/15/build-and-publish-a-clickonce-app-using-team-build-vso.aspx