我在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中安装
有没有人对我可以改变什么设置以使其再次工作有任何建议?
NuGet似乎不适用于VS 15.5.1到15.5.5(包括)的本地IIS Web站点项目。
解决方法是:
Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "http://www.devsite.com", "http://www.devsite.com", "{A8837508-9BC1-482A-86EF-4B3156CAFDBE}"
Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "http://www.devsite.com", "DevWebsiteFolderName", "{A8837508-9BC1-482A-86EF-4B3156CAFDBE}"
可选的:
信用和进一步参考:
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
这让我疯了......我花了好几个小时试图在VS2017中安装Authorize.net nuget包,并且它不断抛出相同的错误。
我终于在VS2015中打开了我的项目并安装它没有任何问题。
希望这可以帮助。
鉴于我们没有得到微软的任何帮助,我们采用了像Barry Kaye所建议的那样做的惯例,但对于第二个参数,只需用一个句号替换它“。”
此问题似乎在15.6.0中已得到修复。如果可以,请尝试升级到该版本。