【问题标题】:Package Manager in VS2015 RC fails on installing/restoring some packagesVS2015 RC 中的包管理器无法安装/恢复某些包
【发布时间】:2015-05-14 17:20:17
【问题描述】:

我正在尝试将 nuget 包 - NGenerics.1.4.1 从 nuget.org (https://www.nuget.org/packages/NGenerics/) 安装到 ASP.NET 5 项目(网站)中。包管理器因 UriFormatException 而失败。之后,参考将添加到解决方案资源管理器的参考文件夹中,但带有黄色三角形(“警告”)。
添加到错误列表中的错误:“无法解决依赖关系 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.

【问题讨论】:

    标签: nuget asp.net-core visual-studio-2015 dnx


    【解决方案1】:

    我今天在 Visual Studio 2013 上使用 NuGet 2.8.5 时偶然发现了同样的问题。@Shrike 的回答帮助我发现这是我在自定义 NuGet.config 中的相对路径的规范。由于看起来System.Uri 必须能够解析它,因此您所要做的就是确保相对路径是正确的合法URI。相对文件 URI 必须以“./”开头(obv 也不使用反斜杠,它们是 Windows 事物!)。见c# type to handle relative and absolute URI's and local file paths

    例如使用:

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

    代替:

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

    删除本地提要不是一个好主意,因为您现在必须从不同的提要中恢复,这可能不是您想要的(就个人而言,鉴于它的跟踪记录,我不会打赌我在 nuget 库上的构建停机时间...)

    【讨论】:

      【解决方案2】:

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

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

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

      这有点荒谬。

      希望它可以帮助别人不要像我一样浪费这么多时间。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2016-12-28
          • 1970-01-01
          • 2015-12-10
          • 2020-12-13
          • 2016-08-25
          • 2019-03-05
          • 2021-04-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多