Nuget包安装错误 - 无效的URI:无法解析权限/主机

问题描述 投票:5回答:4

我在Visual Studio 2017中使用NuGet尝试在较旧的Web窗体项目上安装包,但它失败并出现以下错误:

Invalid URI: The Authority/Host could not be parsed

这只发生在尝试在IIS中映射的网站上安装软件包时(其他类型的项目工作正常),因此项目名称是http://localhost ...等,这是我认为它在解析时遇到的问题。它工作正常,直到几天前,我不知道是什么导致它改变。这是我收到的完整信息:

Resolved actions to install package 'Newtonsoft.Json.10.0.3'
Found package 'Newtonsoft.Json 10.0.3' in 'd:\packages'.
Package 'Newtonsoft.Json.10.0.3' already exists in folder 'd:\packages'
Install failed. Rolling back...
Package 'Newtonsoft.Json.10.0.3' does not exist in project 'http://localhost:89/'
Executing nuget actions took 71.95 ms
Failed to add reference to 'Newtonsoft.Json'.
     Invalid URI: The Authority/Host could not be parsed.

另一个相关的线索是,当我在网站项目上打开“管理NuGet Pacakges ...”时,它没有显示任何正在安装的内容,即使这个项目中的packages.config文件明确存在且定义了多个引用。

我的环境如下:

Visual Studio Professional 2107版本15.5.2,Microsoft.NET Framework版本4.7.02556,NuGet包管理器版本4.5.0,我的NuGet存储库设置为在D:\ packages中安装

有没有人对我可以改变什么设置以使其再次工作有任何建议?

visual-studio nuget
4个回答
9
投票

NuGet似乎不适用于VS 15.5.1到15.5.5(包括)的本地IIS Web站点项目。

解决方法是:

  1. 关闭VS.
  2. (以防万一)制作.sln(解决方案文件)的备份副本
  3. 在文本编辑器中打开.sln文件并找到该行:

Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "http://www.devsite.com", "http://www.devsite.com", "{A8837508-9BC1-482A-86EF-4B3156CAFDBE}"

  1. 修改第二个参数并保存:

Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "http://www.devsite.com", "DevWebsiteFolderName", "{A8837508-9BC1-482A-86EF-4B3156CAFDBE}"

  1. 打开你的解决方案
  2. 如你所愿使用NuGet :-)

可选的:

  1. 关闭VS.
  2. 扭转你的.sln变化。
  3. 打开VS.

信用和进一步参考:

NuGet fails for website projects hosted on local IIS

Nuget looking in wrong location for packages.config in web forms web site running on IIS


1
投票

这让我疯了......我花了好几个小时试图在VS2017中安装Authorize.net nuget包,并且它不断抛出相同的错误。

我终于在VS2015中打开了我的项目并安装它没有任何问题。

希望这可以帮助。

  • 贾森

1
投票

鉴于我们没有得到微软的任何帮助,我们采用了像Barry Kaye所建议的那样做的惯例,但对于第二个参数,只需用一个句号替换它“。”


0
投票

此问题似乎在15.6.0中已得到修复。如果可以,请尝试升级到该版本。

© www.soinside.com 2019 - 2024. All rights reserved.