我们升级到TFS 2012并更改了我们的旧版构建模板,以从Activity元素中删除对Microsoft.TeamFoundation名称空间的所有强名称引用。我们现在在构建时遇到以下错误:
C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ TeamBuild \ Microsoft.TeamFoundation.Build.targets(801):“CreateWorkspaceTask”任务未获得所需参数“BuildAgentUri”的值。< / p>
有没有其他人遇到此错误?
答案 0 :(得分:12)
我刚刚今天早些时候解决了这个问题......
导航并打开: -
C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ TeamBuild \ Microsoft.TeamFoundation.Build.targets
找到类似以下内容的部分: -
CreateWorkspaceTask TeamFoundationServerUrl = “$(TeamFoundationServerUrl)” BuildUri = “$(BuildUri)” BuildDirectory = “$(BuildDirectory)” SourcesDirectory = “$(SolutionRoot)” NAME = “$(工作区名)” 注释= “$(CreateWorkspaceTaskComment)”
将其替换为: -
<!-- Create the workspace for this build --> <CreateWorkspaceTask TeamFoundationServerUrl="$(TeamFoundationServerUrl)" BuildUri="$(BuildUri)" BuildDirectory="$(BuildDirectory)" SourcesDirectory="$(SolutionRoot)" Name="$(WorkspaceName)" Comment="$(CreateWorkspaceTaskComment)" Condition=" '$(ProjectFileVersion)' != '4'"> <Output TaskParameter="Name" PropertyName="WorkspaceName" /> <Output TaskParameter="Owner" PropertyName="WorkspaceOwner" /> </CreateWorkspaceTask> <CreateWorkspaceTask TeamFoundationServerUrl="$(TeamFoundationServerUrl)" BuildUri="$(BuildUri)" BuildDirectory="$(BuildDirectory)" BuildAgentUri="$(BuildAgentUri)" SourcesDirectory="$(SolutionRoot)" Name="$(WorkspaceName)" Comment="$(CreateWorkspaceTaskComment)" Condition=" '$(ProjectFileVersion)' == '4'"> <Output TaskParameter="Name" PropertyName="WorkspaceName" /> <Output TaskParameter="Owner" PropertyName="WorkspaceOwner" /> </CreateWorkspaceTask>
请特别注意文本的大小写,因为这是一个XML文档......
请告诉我这是否有帮助...
干杯!
... CHEV
答案 1 :(得分:6)
我们在其中一台构建计算机上遇到了同样的问题。构建机器一天工作正常,然后停止。唯一的变化是完成了Visual Studio 2010 Service Pack 1的安装。
我们认为可能MSBuild已经推广到以前的版本。
所以我们在另一台构建机器上查看了这个文件,该部分看起来与Chev提供的代码段完全相同。
因此,我们在构建计算机上进入了“程序和功能”,并在TFS 2012安装上进行了修复。这更新了Microsoft.TeamFoundation.Build.targets文件,看起来就像Chev提供的代码片段。
现在构建再次正确运行。