繁体   English   中英

VS2015 RC中的软件包管理器无法安装/还原某些软件包

[英]Package Manager in VS2015 RC fails on installing/restoring some packages

我正在尝试从nuget.org( https://www.nuget.org/packages/NGenerics/ )安装nuget包-NGenerics.1.4.1到ASP.NET 5项目(网站)中。 程序包管理器失败,出现UriFormatException。 之后,将引用添加到解决方案资源管理器的“引用”文件夹中,但带有黄色三角形(“警告”)。
添加到错误列表中的错误:“无法解决Dependency NGenerics> = 1.4.1.0”。
我也尝试从本地文件夹注册表进行安装。

这是msconnect上的错误。

我想知道是否有人遇到同样的问题,因为我在google中找不到任何东西。 也欢迎任何解决方法。

包管理器的输出:

Installing NuGet package NGenerics.1.4.1.
Successfully installed 'NGenerics.1.4.1' to Samples.AjaxDemo2.
========== Finished ==========
Restoring packages for D:\Work\Apps\Samples.AjaxDemo2\project.json
----------
System.UriFormatException: Invalid URI: The format of the URI could not be determined.
   at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
   at System.Uri..ctor(String uriString)
   at Microsoft.Framework.PackageManager.PackageSourceUtils.CreatePackageFeed(PackageSource source, Boolean noCache, Boolean ignoreFailedSources, Reports reports)
   at Microsoft.Framework.PackageManager.RestoreCommand.AddRemoteProvidersFromSources(List`1 remoteProviders, List`1 effectiveSources)
   at Microsoft.Framework.PackageManager.RestoreCommand.<RestoreForProject>d__74.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Framework.PackageManager.RestoreCommand.<>c__DisplayClass73_0.<<ExecuteCommand>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Framework.PackageManager.RestoreCommand.<ExecuteCommand>d__73.MoveNext()
----------
Restore failed
Invalid URI: The format of the URI could not be determined.

我今天在Visual Studio 2013上偶然发现了同一问题,使用的是NuGet 2.8.5。@ Shrike的答案帮助我发现这是自定义NuGet.config中相对路径的规范。 由于出现System.Uri它必须能够解析它,因此您要做的就是确保相对路径是正确的合法URI。 相对文件URI必须以'./'开头(obv也不要使用反斜杠,它们是Windows Thing!)。 请参阅c#类型以处理相对和绝对URI以及本地文件路径

例如使用:

<add key="local-feed" value="./lib/nuget-feed" />

代替:

<add key="local-feed" value="lib/nuget-feed" />

删除本地提要不是一个好主意,因为您现在必须从其他提要中恢复,这可能不是您想要的(就个人而言,鉴于它具有停机时间的记录,我不会将自己的构建押在nuget画廊上。 。)

最终我发现了问题所在。 在文件夹结构中,我的解决方案上方的某个地方有“ .nuget \\ NuGet.config”文件。
NuGet.config包含具有相对文件路径的软件包源:

<configuration>
  <packageSources>
    <add key="local" value="..\..\..\Release"/>
  </packageSources>
</configuration>

当我删除VS中的packageSource软件包管理器后,它开始工作。

这有点荒谬。

希望它可以帮助某人不要像我那么长时间。

在浪费了大约两个小时之后,我发现我的包源已添加到.nuget \\ NuGet.config中的disabledPackageSources部分中。 我只需要从禁用列表中将其删除。

 <disabledPackageSources>
    <add key="RaNuget" value="true" />
  </disabledPackageSources>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM