构建过程xaml文件找不到Workspace

时间:2014-08-28 17:28:10

标签: xaml azure tfs

我正在尝试按照Azure和Team Foundation Build Server located here的CI教程进行操作,但是在步骤5中遇到了构建配置模板XAML文件配置的问题。配置一个新的ConvertWorkSpaceItem,并将其添加到TFS提供的修改后的构建模板(TfvsTemplate.12.xaml),以便可以在TFS构建代理上运行自定义脚本,我尝试设置属性Workspace =&# 34; Workspace",但是给出了编译器错误:' Workspace'是一种类型,不能用作表达式。

here is the snippet in question of my diagram.

我已经完成了一些故障排除,并且发生在其他人身上的错误 - 没有确定CreateWorkSpaceItem的范围,或使用错误版本的TFS或Visual Studio - 似乎不是问题。我把逻辑正确地放在" Run on Agent"块,所以范围应该是正确的,Visual Studio和我的TFS服务器都运行2013.我唯一的想法是指令已经过时,还有一些其他需要采取的步骤,我缺少。有什么想法吗?

编辑: Here are the parameters表示第一个失败的转换项。第二个失败的转换项目类似。输入和结果变量是我为工作流定义的参数,作为本教程说明的一部分。显示的错误是:"编译器错误遇到处理表达式"工作区"。 '工作区'是一种类型,不能用作表达式。"

1 个答案:

答案 0 :(得分:1)

好的,现在已经出现了几次,对于TFS 2013。

内置的变量曾用于

  

SourcesDirectory,Binaries Directory和Workspace

这些在TFS 2013中不再可用,您现在必须使用

  

Microsoft.TeamFoundation.Build.Activities.Extensions.WellKnownEnvironmentVariables

访问这些。

获取工作区有点复杂,但是如果你分配一些局部变量,你应该能够得到工作区对象。

声明sourcesDirectory(string)和buildDetail(IBuildDetail)和workSpace(Workspace)的局部变量,将其范围设置为整个工作流程

创建GetEnvironmentVariable Activity并将其 Result 值设置为sourcesDirectory并使用Microsoft.TeamFoundation.Build.Activities.Extensions.WellKnownEnvironmentVariables.SourcesDirectory。 Get Sources Directory Value

对buildDetail = WellKnownEnvironmentVariables.BuildDetail重复相同的操作

为workSpace对象创建一个assign任务,将其设置为 workSpace = “[buildDetail.BuildServer.TeamProjectCollection.GetService()。GetWorkspace(sourcesDirectory)]”

然后,这应该为您提供一个Workspace对象。

注意:语法可能略有不足。

为了补充删除这些变量,MS添加了一个新的活动

  

GetLocalPath

可能对您有用