7

我们升级到 TFS 2012 并更改了旧版构建模板,以从 Activity 元素中删除对 Microsoft.TeamFoundation 命名空间的所有强名称引用。我们现在在构建时收到以下错误:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets (801):“CreateWorkspaceTask”任务没有被赋予所需参数“BuildAgentUri”的值。

有没有其他人遇到过这个错误?

4

2 回答 2

12

我今天早些时候刚刚解决了这个问题......

导航并打开:-

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets

找到类似于以下内容的部分:-

CreateWorkspaceTask TeamFoundationServerUrl="$(TeamFoundationServerUrl)" BuildUri="$(BuildUri)" BuildDirectory="$(BuildDirectory)" SourcesDirectory="$(SolutionRoot)" Name="$(WorkspaceName)" Comment="$(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 文档...

请让我知道这可不可以帮你...

干杯!

...雪佛兰

于 2012-11-20T21:13:41.997 回答
6

我们在我们的一台构建机器上遇到了同样的问题。构建机器一天工作正常,第二天就停止了。唯一的变化是完成了 Visual Studio 2010 Service Pack 1 的安装。

我们认为 MSBuild 可能会滚动到以前的版本。

因此,我们在另一台构建机器上查看了该文件,该部分看起来与 Chev 提供的片段完全相同。

因此,我们在构建机器上进入“程序和功能”,并对 TFS 2012 安装进行了修复。这更新了 Microsoft.TeamFoundation.Build.targets 文件,使其看起来就像 Chev 提供的代码片段。

现在构建再次正确运行。

于 2013-02-12T20:19:07.717 回答