1

Microsoft 引入了邀请 AAD 用户加入 MSA 支持的 Azure DevOps 帐户的选项。这对于将帐户从“非托管”转换为“托管”的公司非常有用,首先将帐户所有权转移给 AAD 用户,然后以较慢的方法修复用户和许可混乱。

但是,当我尝试使用 Visual Studio 2017 或 2019 克隆存储库时,我收到一条错误消息:

在此处输入图像描述

Git 因致命错误而失败。身份验证失败:{remote-url}。

或者,取决于您拥有的 Git 凭证管理器版本:

错误:无法生成 askpass:没有这样的文件或目录致命:无法读取“{remote-url}”的用户名:终端提示已禁用`

从命令行克隆时,没有问题,之后,Visual Studio 也可以使用生成的 git 存储库。

4

2 回答 2

1

更新

最新版本的 os Visual Studio 2017 (15.9.10+) 现在包含版本 1.18.4 的 Git Credential Manager,应该可以解决旧版本引起的许多问题。如果您需要更新版本的 GCMfW,同样的技巧也适用于更新版本。


在与 Chad Boles(在 Visual Studio 中维护团队资源管理器)聊天后,我们制定了另一种选择。首选覆盖 Visual Studio 安装中的文件,因为这可能会破坏未来的更新,并可能导致未来难以调试的问题。

  1. 在您的系统中安装最新的 GCMW-1.xx.xx.exe和/或更新到最新版本的Git for Windows,其中应包括 GCM。
  2. 更新您的全局 git 配置以指向 Git 凭证管理器的特定实现:

    c:\>git config --global --edit
    

    更新该[credential]部分以阅读:

    [credential]
        helper = C:\\\\Program\\ Files\\\\Git\\\\mingw64\\\\libexec\\\\git-core\\\\git-credential-manager.exe
    

    确保路径指向可以在您的系统上找到最新 Git 凭据管理器的位置。请注意使路径在全局 git 配置中工作所需的所有转义。

于 2019-02-20T10:05:26.167 回答
0

事实证明,Visual Studio 2017(截至 15.9.7)和 2019(预览版 3)仍然附带 Git Credential Manager 1.17 版,并且它们不使用全局安装的版本(如果可用)。

在此处输入图像描述

您可以在以下位置检查您是否有“旧”版本:

C:\Program Files (x86)\Microsoft Visual Studio\2017\{EDITION}\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\libexec\git-core
C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\libexec\git-core

如果它们不在版本 1.18.4 上,则它们没有 MSA 支持的帐户中的 AAD 身份验证所需的修复程序

如果你有正确的版本,你应该看到:

在此处输入图像描述

使固定

这是官方不支持的,并且可能会产生不必要的副作用。但这对我有用;)。

要修复 Visual Studio,您可以使用 Git 凭据管理器的最新版本 zip 中的文件覆盖上述位置的二进制文件:

在此处输入图像描述

不幸的是,每次升级到更新/预览版时,您都需要重新应用这些文件,直到 Microsoft 决定将最新版本作为 Visual Studio 的一部分发布。Visual Studio 安装程序将顽固地用 1.17 版本覆盖它。

于 2019-02-19T13:09:54.383 回答