运行:
dotnet new --install Microsoft.AspNetCore.SpaTemplates::*
生成以下错误:
C:\Program Files (x86)\dotnet\sdk\1.0.4\Nuget.targets(97,5): error : Unable to laod the service index for source https://MYNugetFeed.pkgs.visualstudio.com/_packaging/Project/nuget/v3/index.json. \r [C:\Users\me\.templateengine\dotnetcli\v1.0.4\scratch\restore.csproj]
C:\Program Files (x86)\dotnet\sdk\1.0.4\NuGet.targets(97,5): error : Response status code does not indicate success: 401 (Unauthorized).
所以我的问题是为什么它会查看NuGet提要而不是标准(假设这些模板在哪里)以及如何更改dotnet cli的配置?我知道这在某种程度上与环境有关。
答案 0 :(得分:3)
<强>原因强>
在Visual Studio(以及其他工具)中设置NuGet服务器时,它们将在NuGet.config中基于每个用户进行保存。 Dotnet new -install
试图利用它们。不幸的是,我的一台nuget服务器(Telerik)需要进行身份验证,并且它失败了很多,以至于它甚至被尝试都阻止了所有其他来源。
<强>解决方案强>
在Windows 10和8. *上,您可以在此处找到NuGet.Config:
转到C:\Users\[User Name]\AppData\Roaming\NuGet\NuGet.Config
在<packageSources>
下,会有一个服务器列表,如下所示:
<packageSources>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
<add key="REDACTED" value="http://REDACTED:8080/guestAuth/app/nuget/v1/FeedService.svc/" />
<add key="REDACTED" value="http://REDACTED/nuget" />
<add key="Telerik (Kendo)" value="https://nuget.telerik.com/nuget" />
</packageSources>
为了完成这项工作,我将其减少到核心nuget.org服务器:
<packageSources>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
</packageSources>
...然后模板安装开始工作。
答案 1 :(得分:2)
听起来您的计算机具有指向该Feed的全局nuget配置。您可以通过创建新的nuget.config文件来更改特定目录及其子项的行为。
您可以在Nuget文档的Configuring Nuget Behavior page上了解本地文件如何覆盖全局文件。
答案 2 :(得分:2)
我大概也遇到了布莱恩·麦凯(Brian MacKay)在Telerik身上遇到的相同问题。但是,我正在积极地工作一个需要Telerik源代码的项目,因此我不希望从Nuget.Config中删除所有内容
但是,通过在命令中指定特定的nuget源,我能够安装所需的模板-在我的情况下为IdentityServer4模板。因此,此命令有效:
dotnet new -i IdentityServer4.Templates --nuget-source https://api.nuget.org/v3/index.json
假设OP是正确的,并且提到的模板在标准的Nuget注册表中,那么我想在那里可以进行类似的调用。