git - 使用 GIT 子模块构建的 TFS 2013.4 失败

标签 git tfsbuild

我们刚刚将我们的 TFS 更新到 TFS 2013 更新 4 (TFS2013.4),并且我们在我们的存储库中使用 GIT 子模块(我们在构建服务器上使用一些自定义 MSBUILD 魔术进行了更新)。

但是现在有了最新的更新,我们的构建全部失败并显示以下消息:

Cannot set unknown member 'Microsoft.TeamFoundation.Build.Activities.Git.GitPull.CheckoutSubmodules'.

Microsoft 似乎添加了某种对 GIT 子模块的支持,但它在我们的构建服务器上确实失败了。

关于如何解决这个问题有什么想法吗?

最佳答案

嗯,这是我自己的愚蠢造成的(大多数时候都是这样)。

我认为只要安装 Visual Studio Update 4 (VS2013.4) 就会为 TFS 使用的构建服务器安装相同的必需客户端库,但我错了。

只需将 TFS 构建服务器更新到 TFS2013.4 即可解决问题。

编辑:唯一解决的问题是更新子模块的“hackety MSBUILD 魔法”再次起作用,没有 native 支持。

似乎 TFS 服务器上的 TFS2013.4 和构建服务器上的 TFS2013.2 之间的版本不同导致了根本无法获取 repo 的问题,无论它是否有子模块。

由于问题中的错误让人相信,看起来构建服务器开始本地支持子模块,但我无法完成这项工作。

编辑 2:

对于那些要求 hackety 解决方案的人,我最终在构建服务用户的配置文件文件夹中使用纯文本 _netrc 文件,如下所示:

machine <hostname1>
login <login1>

Git - How to use .netrc file on windows to save user and password

我还遇到了一个问题,当 TFS 构建服务帐户在 TFS 构建的上下文中运行时,未设置 HOME 环境变量,因此我必须手动设置它:

在系统属性>环境变量下

将系统变量 HOME 设置为 %PROFILE%

关于git - 使用 GIT 子模块构建的 TFS 2013.4 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26969885/

相关文章:

bash - git log --oneline 提供在管道或重定向到文件时丢失的 HEAD 信息

git - 是否可以将 'fork" repo 到特定提交?

git - rebase 后无法推送到分支

git - 压缩到只有一个 "proper"提交 github pull 请求

c# - TFS 更改构建代理工作目录

powershell - TFS vNext build agent安装

linux - 如果只能执行 Windows 批处理脚本,为什么 bash 脚本需要执行位?

visual-studio-2010 - VS2010 : Exclude a project from build

tfsbuild - 在 Team Build 计算机上激活 InstallShield 2012 LE(限量版)

tfsbuild - TFS 2010 Team Build Revision $(Rev :. r)存储在哪里?