我在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 Package Manager版本4.5.0,我的NuGet存储库设置为在D:\ packages
中安装有没有人对我可以改变哪些设置以使其再次工作有任何建议?
答案 0 :(得分:9)
NuGet似乎不适用于VS 15.5.1到15.5.5(包括)中的本地IIS网站项目。
解决方法是:
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
答案 1 :(得分:1)
这让我疯了......我花了好几个小时尝试在VS2017中安装Authorize.net nuget软件包并且它一直在抛出相同的错误。
我终于在VS2015中打开了我的项目并安装它没有任何问题。
希望这有帮助。
答案 2 :(得分:1)
鉴于我们没有得到微软的任何帮助,我们采用了像Barry Kaye所建议的那样做的惯例,但对于第二个参数,只需用一个句号代替它。“
答案 3 :(得分:0)
此问题似乎已在15.6.0中修复。如果可以,请尝试升级到该版本。
答案 4 :(得分:0)