我们刚刚将我们的 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/