【问题标题】:404 error when building Git project in TFS2013在 TFS2013 中构建 Git 项目时出现 404 错误
【发布时间】:2016-05-07 14:23:22
【问题描述】:

我正在尝试通过 TFS 2013 Update 4 - 软件版本 12.0.31101.0 (Tfs2013.Update4) 构建一个 git 项目。我们在 TFSVC 下使用此服务器构建项目没有问题,但 Git 项目无法构建。

我已经使用以下配置设置了构建定义(使用默认的GitTemplate.12.xaml 模板):

这是我从构建中获得的日志(失败的总时间为 1 秒):

Update build number

Run on agent (reserved build agent Chutzpah Controller)

Initialize environment

Pull sources from Git repo
 Exception Message: Response status code does not indicate success: 404 (Not Found). (type LibGit2SharpException)
Exception Data Dictionary:
libgit2.code = -1
libgit2.category = 12


Exception Stack Trace: 
Server stack trace: 
   at LibGit2Sharp.Core.Ensure.HandleError(Int32 result)
   at LibGit2Sharp.Core.Proxy.git_clone(String url, String workdir, GitCloneOptions& opts)
   at LibGit2Sharp.Repository.Clone(String sourceUrl, String workdirPath, CloneOptions options)
   at Microsoft.TeamFoundation.Build.Activities.Git.GitPull.GitClone.GetRepository(String repositoryUrl, String workingFolder, Boolean checkoutSubmodules)
   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase)
   at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData)
   at System.Func`4.EndInvoke(IAsyncResult result)
   at Microsoft.TeamFoundation.Build.Activities.Git.GitPull.GitRepositoryBase.EndExecute(AsyncCodeActivityContext context, IAsyncResult result)
   at System.Activities.AsyncCodeActivity`1.System.Activities.IAsyncCodeActivity.FinishExecution(AsyncCodeActivityContext context, IAsyncResult result)
   at System.Activities.AsyncCodeActivity.CompleteAsyncCodeActivityData.CompleteAsyncCodeActivityWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)

我认为它可能是它访问的 URL,但是当您取消选中 Get sources from a Team Foundation Git repository 时它从“源设置”选项卡生成的 URL 工作正常:

http://teamsource:8080/tfs/defaultcollection/Live%20Link%20Dashboard/_git/Live%20Link%20Dashboard

然后我认为这是我从流程模板的Build 部分到解决方案文件的路径 - 因此我尝试了以下值,但都不起作用:

\LiveLinkDashboard.sln
$\LiveLinkDashboard.sln
/LiveLinkDashboard.sln
$/LiveLinkDashboard.sln

我在这里不知所措 - 有人有什么建议或想法吗?

【问题讨论】:

    标签: git tfs build build-process


    【解决方案1】:

    您需要单击屏幕截图所示的省略号,删除您的解决方案,然后从工作区添加解决方案。项目路径类似于 \LiveLinkDashboard\LiveLinkDashboard.sln

    【讨论】:

    • 不幸的是,我已经尝试了多次,但它只是不想工作......我不太确定这是项目路径的问题,我认为它只是有一个困难是时候解析 git repo 的 url 了吗?
    • 进入团队资源管理器--设置--存储库设置,并检查远程以查看远程是否看起来像tfsserver:8080/tfs/defaultcollection/_git/teamprojectname。你也可以新建一个 GIT 团队项目和一个简单项目,将项目推送到团队项目中并排队一个新的构建,看看你是否会得到同样的错误。
    • 虽然它不能解决问题,但有趣的是,当您运行 git remote -v 时,它会返回一个类似 'teamsource:8080/tfs/defaultcollection/_git/reponame'...but 的 url,当您查看构建定义的 repo URL 时,它会返回像 'teamsource:8080/tfs/defaultcollection/teamprojectname/_git/… 这样的 url 已经尝试在 Web 浏览器中将这两个 url 解析到同一个端点,并且构建也失败了,但它肯定看起来可能与问题有关......我会更多今天晚些时候测试
    【解决方案2】:

    问题看起来像这样:TFS 2013 git CI build definition points to incorrect address

    微软的解决方法是:

    此问题已在 Visual Studio 2013 中修复。您可以安装 Visual Studio 2013 试用版,修复来自: http://go.microsoft.com/?linkid=9832436

    【讨论】:

    • 我已经安装了最新版本的 VS2013 - 这并不能解决我的问题...今天下午我还要带上装有 VS2015 的笔记本电脑,看看是否可能是那个可以以不同的方式重新创建构建定义
    • 我在这里的实验室环境中也有一个 TFS2015 服务器设置,我会试试看它是否可以解决问题,如果可以,我会深入研究是否可以更新我们的构建服务器
    • @RobertPetz 能否尝试在构建服务器上使用“teamsource:8080/tfs/defaultcollection/_git/…”执行 git clone 以查看操作是否可以成功完成?
    • 这是一个很好的观点——我从来没有尝试过从构建服务器本身访问 repos。我会在早上第一件事尝试一下,然后报告
    • @eddit - MSFT 我能够成功地在构建服务器上进行 git clone 没有问题...看起来这不是解决这个问题的方法 =(
    猜你喜欢
    • 2019-11-29
    • 1970-01-01
    • 2016-10-03
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-03
    • 2011-11-02
    相关资源
    最近更新 更多