Visual Studio Team Services 使用 asp.net core rc2 的未经授权的 nuget 包
Unauthorized nuget package from Visual Studio Team Services using asp.net core rc2
我无法从 Visual Studio Team Services 提要中 install/restore nuget 包 asp.net 核心 Web 应用程序 (RC2)。我收到以下信息:
error: Response status code does not indicate success: 401
(Unauthorized).
我是 运行 Visual Studio 社区 2015 更新 2 和 nuget 版本 3.4.4。我能够 install/restore 从此提要中的包用于其他项目类型。
我是否需要执行其他操作来传递 asp.net 核心 Web 应用程序的凭据?
重现步骤:
从 Team Services 包选项卡 I select "Connect to Feed" 复制 NuGet 包源 URL
在 visual studio -> 工具 -> NuGet 包管理器 -> 包管理器设置 -> 包源并添加来自 vso
的提要 url
然后从我的 ASP.NET Core Web Application (.NET Framework) 项目中右键单击引用 -> 管理 NuGet 包
-> Select 来自包源的我的提要(已列出包)-> 单击以安装
在输出中:
Installing NuGet package xxxxx
Successfully installed xxxxx to WebApplication1
========== Finished ==========
然后它将尝试恢复包,此时我得到:
error: Response status code does not indicate success: 401 (Unauthorized).
error: Failed to retrieve information from remote source
并且在 web 项目引用中 - 包有警告图标 - NU1001 无法解析依赖项 xxxxx
我在 VSTS 构建定义的 NuGet 还原任务中遇到了类似的问题(无身份验证)。解决方案是在项目的根目录中添加一个 NuGet.config 文件,并引用官方和我的自定义提要。也许它对您的核心项目也有帮助。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="RmlrTools" value="https://<MyProjectName>.pkgs.visualstudio.com/DefaultCollection/_packaging/<MyFeedName>/nuget/v3/index.json" />
</packageSources>
<!-- used to store credentials -->
<packageSourceCredentials />
<!-- Used to specify which one of the sources are active -->
<activePackageSource>
<!-- this tells only one given source is active -->
<add key="NuGet official package source" value="https://nuget.org/api/v2/" />
<!-- this tells that all of them are active -->
<add key="All" value="(Aggregate source)" />
</activePackageSource>
<!-- Used to disable package sources -->
<disabledPackageSources />
<!--
Used to specify default API key associated with sources.
See: NuGet.exe help setApiKey
See: NuGet.exe help push
See: NuGet.exe help mirror
-->
<!--<apikeys>
<add key="http://MyRepo/ES/api/v2/package" value="encrypted_api_key" />
</apikeys>-->
</configuration>
我可以在我这边重现您的问题,以下是我用来恢复软件包的解决方法:
- 从 "VS\Tools\NuGet Package Manager\Package sources" 中删除 VSTS 提要资源。
- 从您的 VSTS 门户网站打开 "Packages" 选项卡。
- Select 您要连接的 Feed,然后单击 "Connect to feed" 选项。
- Select "Personal Access Tokens" 对话框中的方法。
- 在对话框中复制生成的命令。
- 运行 在您的计算机上以管理员身份执行 CMD。
- 将复制的命令粘贴到CMD。
- 在命令后添加“-StorePasswordInClearText”参数。
- 运行命令。
- 重启VS
- 安装和恢复包。
我知道这不是完全相同的问题,但人们可能会像我一样遇到这个问题。
我已经安装了 VS Community 2019 ,昨天我决定删除 VS 2017,但在那之后,当我试图恢复公司制作的 Nuget 包时,它开始显示 的错误401 未经授权.
经过几次网络搜索后,我决定不想弄乱 VS 配置和文件,然后我意识到,因为它是 401 未授权,所以它与帐户有关,所以我所做的是:
- 已关闭 VS2019
- 转到 windows 管理凭据并删除所有与我的包相关的凭据
- 重新打开 VS 2019 并为我的解决方案恢复了 Nuget 包。
他们要求我提供凭据,进行设置,从这里开始一切顺利。
这是我删除并重新创建的两个帐户:
对我来说,问题是由于在连接到私有本地 Azure Artifacts NuGet 源时不正确的凭据(未指定域)造成的,这并没有立即显现出来。
使用 Visual Studio 2019,打开项目的 NuGet 包管理器。如果 'Browse' 选项卡首先显示并且包源是私有 NuGet 提要,则似乎没有问题,因为它最初列出了所有包。但是,切换到 'Installed' 选项卡会弹出登录对话框。
如果我输入我的用户名和密码 没有 域(所以 用户名 而不是 domain/username ),它似乎接受了这一点,但是除了安装的版本之外,没有为我安装的软件包列出其他版本。如果我转到 'Browse' 选项卡,则会看到以下错误:
当我点击 'Show errors in output' 时,我看到以下内容:
Failed to retrieve metadata from source 'https://[domain]/[Collection]/_packaging/[GUID]/nuget/v3/query2/?q=&skip=0&take=26&prerelease=true&semVerLevel=2.0.0'.
Response status code does not indicate success: 401 (Unauthorized).
为了解决这个问题,我在凭据管理器中关闭了 Visual Studio,然后删除了与 Azure DevOps 服务器相关的所有凭据(例如,[domain]
、VSCredentials_[domain]
)。我注意到这些用户名显示了错误的域 - 它显示了 Azure DevOps 服务器域而不是 Active Directory 域。
然后我重新打开 Visual Studio,再次打开 NuGet 包管理器,这次(在 'Installed' 选项卡上)输入我的凭据,包括域 (domain/username).这解决了问题并允许我连接到 Azure Artifact NuGet 源。
在尝试上述任何操作之前,请尝试重新启动计算机。
就我而言,我遵循了这些步骤
- 使用相关凭据创建个人访问令牌
- 下载nuget.exe(nuget cli)
- 使用windows 运行命令打开cmd,然后
cd C:\Downloads(下载cli的地方),输入
“nuget.exe”并输入
- 执行 -->
nuget.exe sources Add -Name "MyFeedName" -Source "https://myfeedurl" -username 用户名 -password MyAccessToken
- 在visual studio工具->命令行->开发者命令提示符
- dotnet 恢复
- 转到“管理 Nuget 包”
- 点击右上角的“设置”
- 取消勾选“包”
就我而言,我使用的是 azure dev ops 提要。更新 visual studio 2022 后,我开始收到此消息“响应状态代码不表示成功:401(未授权)”。
我遵循并尝试了这里的大部分解决方案。但对我有用的是
- 转到:文件 -> 帐户设置
- 点击“唱出来”
- 然后转到 nuget 管理器并单击刷新按钮
- 这将向您显示 azure dev ops 登录名 window,您可以在其中登录您的帐户
这对我有用,(你的里程数可能会有所不同)只是希望它能帮助其他人并挽救一些宝贵的后退头发。
我无法从 Visual Studio Team Services 提要中 install/restore nuget 包 asp.net 核心 Web 应用程序 (RC2)。我收到以下信息:
error: Response status code does not indicate success: 401 (Unauthorized).
我是 运行 Visual Studio 社区 2015 更新 2 和 nuget 版本 3.4.4。我能够 install/restore 从此提要中的包用于其他项目类型。
我是否需要执行其他操作来传递 asp.net 核心 Web 应用程序的凭据?
重现步骤:
从 Team Services 包选项卡 I select "Connect to Feed" 复制 NuGet 包源 URL
在 visual studio -> 工具 -> NuGet 包管理器 -> 包管理器设置 -> 包源并添加来自 vso
的提要 url然后从我的 ASP.NET Core Web Application (.NET Framework) 项目中右键单击引用 -> 管理 NuGet 包 -> Select 来自包源的我的提要(已列出包)-> 单击以安装
在输出中:
Installing NuGet package xxxxx
Successfully installed xxxxx to WebApplication1
========== Finished ==========
然后它将尝试恢复包,此时我得到:
error: Response status code does not indicate success: 401 (Unauthorized).
error: Failed to retrieve information from remote source
并且在 web 项目引用中 - 包有警告图标 - NU1001 无法解析依赖项 xxxxx
我在 VSTS 构建定义的 NuGet 还原任务中遇到了类似的问题(无身份验证)。解决方案是在项目的根目录中添加一个 NuGet.config 文件,并引用官方和我的自定义提要。也许它对您的核心项目也有帮助。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="RmlrTools" value="https://<MyProjectName>.pkgs.visualstudio.com/DefaultCollection/_packaging/<MyFeedName>/nuget/v3/index.json" />
</packageSources>
<!-- used to store credentials -->
<packageSourceCredentials />
<!-- Used to specify which one of the sources are active -->
<activePackageSource>
<!-- this tells only one given source is active -->
<add key="NuGet official package source" value="https://nuget.org/api/v2/" />
<!-- this tells that all of them are active -->
<add key="All" value="(Aggregate source)" />
</activePackageSource>
<!-- Used to disable package sources -->
<disabledPackageSources />
<!--
Used to specify default API key associated with sources.
See: NuGet.exe help setApiKey
See: NuGet.exe help push
See: NuGet.exe help mirror
-->
<!--<apikeys>
<add key="http://MyRepo/ES/api/v2/package" value="encrypted_api_key" />
</apikeys>-->
</configuration>
我可以在我这边重现您的问题,以下是我用来恢复软件包的解决方法:
- 从 "VS\Tools\NuGet Package Manager\Package sources" 中删除 VSTS 提要资源。
- 从您的 VSTS 门户网站打开 "Packages" 选项卡。
- Select 您要连接的 Feed,然后单击 "Connect to feed" 选项。
- Select "Personal Access Tokens" 对话框中的方法。
- 在对话框中复制生成的命令。
- 运行 在您的计算机上以管理员身份执行 CMD。
- 将复制的命令粘贴到CMD。
- 在命令后添加“-StorePasswordInClearText”参数。
- 运行命令。
- 重启VS
- 安装和恢复包。
我知道这不是完全相同的问题,但人们可能会像我一样遇到这个问题。
我已经安装了 VS Community 2019 ,昨天我决定删除 VS 2017,但在那之后,当我试图恢复公司制作的 Nuget 包时,它开始显示 的错误401 未经授权.
经过几次网络搜索后,我决定不想弄乱 VS 配置和文件,然后我意识到,因为它是 401 未授权,所以它与帐户有关,所以我所做的是:
- 已关闭 VS2019
- 转到 windows 管理凭据并删除所有与我的包相关的凭据
- 重新打开 VS 2019 并为我的解决方案恢复了 Nuget 包。 他们要求我提供凭据,进行设置,从这里开始一切顺利。
这是我删除并重新创建的两个帐户:
对我来说,问题是由于在连接到私有本地 Azure Artifacts NuGet 源时不正确的凭据(未指定域)造成的,这并没有立即显现出来。
使用 Visual Studio 2019,打开项目的 NuGet 包管理器。如果 'Browse' 选项卡首先显示并且包源是私有 NuGet 提要,则似乎没有问题,因为它最初列出了所有包。但是,切换到 'Installed' 选项卡会弹出登录对话框。
如果我输入我的用户名和密码 没有 域(所以 用户名 而不是 domain/username ),它似乎接受了这一点,但是除了安装的版本之外,没有为我安装的软件包列出其他版本。如果我转到 'Browse' 选项卡,则会看到以下错误:
当我点击 'Show errors in output' 时,我看到以下内容:
Failed to retrieve metadata from source 'https://[domain]/[Collection]/_packaging/[GUID]/nuget/v3/query2/?q=&skip=0&take=26&prerelease=true&semVerLevel=2.0.0'. Response status code does not indicate success: 401 (Unauthorized).
为了解决这个问题,我在凭据管理器中关闭了 Visual Studio,然后删除了与 Azure DevOps 服务器相关的所有凭据(例如,[domain]
、VSCredentials_[domain]
)。我注意到这些用户名显示了错误的域 - 它显示了 Azure DevOps 服务器域而不是 Active Directory 域。
然后我重新打开 Visual Studio,再次打开 NuGet 包管理器,这次(在 'Installed' 选项卡上)输入我的凭据,包括域 (domain/username).这解决了问题并允许我连接到 Azure Artifact NuGet 源。
在尝试上述任何操作之前,请尝试重新启动计算机。
就我而言,我遵循了这些步骤
- 使用相关凭据创建个人访问令牌
- 下载nuget.exe(nuget cli)
- 使用windows 运行命令打开cmd,然后 cd C:\Downloads(下载cli的地方),输入 “nuget.exe”并输入
- 执行 --> nuget.exe sources Add -Name "MyFeedName" -Source "https://myfeedurl" -username 用户名 -password MyAccessToken
- 在visual studio工具->命令行->开发者命令提示符
- dotnet 恢复
- 转到“管理 Nuget 包”
- 点击右上角的“设置”
- 取消勾选“包”
就我而言,我使用的是 azure dev ops 提要。更新 visual studio 2022 后,我开始收到此消息“响应状态代码不表示成功:401(未授权)”。
我遵循并尝试了这里的大部分解决方案。但对我有用的是
- 转到:文件 -> 帐户设置
- 点击“唱出来”
- 然后转到 nuget 管理器并单击刷新按钮
- 这将向您显示 azure dev ops 登录名 window,您可以在其中登录您的帐户
这对我有用,(你的里程数可能会有所不同)只是希望它能帮助其他人并挽救一些宝贵的后退头发。