[英]NuGet install-package doesn't work. How can I get more verbose information to help debug why this is failing?
一位同事正在尝试将nuget软件包安装到简单的默认c#Web应用程序中。 它几乎立即失效。
我可以在Visual Studio程序包管理器控制台中为Install-Package <some nuget package>
提供参数,以获取一些详细信息来帮助调试安装失败的原因吗?
错误信息:
从源“ MyGet”中检索“”的程序包元数据时发生错误。
信息:Visual Studio中: V2015
的NuGet扩展: 3.4.4.1321
NuGet包来源:MyGet
在解决方案的根目录中找到示例NuGet.config
文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<add key="MyGet" value="https://www.myget.org/F/<our package>/api/v2" />
</packageSources>
</configuration>
对于我自己,我可以很好地安装该软件包。 实际上,我们的MyGet公共仓库中有5个软件包,而我刚安装了其中的2个软件包,就在创建这个SO问题之前(再次)进行测试时。
有人有建议吗?
如上所述,这是使用PACKAGE MANAGER CONSOLE,而不是CLI。
使用PMC中-verbosity detailed
的-verbosity detailed
,就会发生这种情况。
PM> install-package xunit -verbosity detailed
Install-Package : A parameter cannot be found that matches parameter name 'verbosity'.
At line:1 char:23
+ install-package xunit -verbosity detailed
+ ~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Install-Package], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand
您可以尝试将-Verbose参数添加到PowerShell命令。
install-package xunit -verbose
您也可以尝试查看$ error对象,以查看是否具有更多信息,例如异常调用堆栈。
$error.Exception.StackTrace
以上内容可能会或可能不会为您提供更多信息。
您可以在启用PowerShell的Package Manager控制台中使用-Verbose
开关来获取更多详细信息。
要排除与MyGet的客户端连接性问题,您可以尝试诊断客户端与Feed的连接性吗?
https://www.myget.org/F/<feedIdentifier>/api/v2
尝试使用Fiddler使用URL格式从该用户计算机上的Feed中检索特定的软件包:
https://www.myget.org/F/<feedIdentifier>/api/v2/package/<packageId>/<packageVersion>
如果是私人供稿,则需要对请求进行身份验证,例如使用预先身份验证的v2端点:
https://www.myget.org/F/<feedId>/auth/<apiKey>/api/v2/package/<packageId>/<packageVersion>
如果缓存中有损坏,清除NuGet客户端的HTTP缓存也可能很有用。 您可以使用NuGet命令行命令清除它:
nuget.exe locals http-cache -clear
如果程序包已经在本地缓存中,则NuGet客户端将改为从本地缓存中解析它。 可能是本地缓存中的软件包已损坏,在这种情况下,您可以使用以下NuGet命令行命令:
nuget.exe locals all -clear
最后,值得一看的是nuget.config层次结构。 最本地的nuget.config将从上级链继承配置设置(例如,机器范围的设置),其中之一是<disabledPackageSources>
元素。 为确保此功能不会在这里起作用,请将以下内容添加到您最本地的nuget.config中,然后重试:
<disabledPackageSources>
<clear />
</disabledPackageSources>
如果上述方法均不能帮助您解决问题,请随时使用带有-verbosity detailed
的nuget命令行(nuget.exe),因为它可能会提供更多详细信息,例如发出的实际HTTP请求。
另外,请确保使用最新版本的NuGet客户端工具( 在此处可用)
看起来您正在遇到http://blog.myget.org/post/2016/02/21/Two-of-my-packages-are-治疗-作为一个帮助 ! .aspx 。 订阅源上有一个0.7.0-dev和0.7-dev版本的软件包,NuGet将该版本视为相同版本。
解决方案是删除这两个软件包之一。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.