找不到ASP.NET 5.0中的HttpClient?
使用VS2015和asp.net 5,当我尝试使用System.Net.HttpClient实例编译我的网站时,它告诉我:
找不到类型或命名空间名称’HttpClient’(您是否缺少using指令或程序集引用?)
将鼠标hover在有问题的代码上,我看到:
"WebApplication1.ASP.NET 5.0 - Available" "WebApplication1.ASP.NET Core 5.0 - Not Available"
我的project.json文件中列出了2个框架:
"frameworks": { "aspnet50": { }, "aspnetcore50": { } },
我假设其中一个是由于没有组装而负责,但我真的不知道如何解决它或如何工作。
如何让网站与HttpClient一起运行而不是抛出错误? 违规方法发布如下:
private async Task GetStringFromUri() { using (var httpClient = new HttpClient()) { result = await httpClient.GetStringAsync( new Uri("http://baconipsum.com/api/?type=meat-and-filler")); viewModel= result; return viewModel; } }
终于搞定了一切。 @yuval让我在正确的轨道上找到了关于添加依赖项的答案,并指出该类存在于github上。 进一步的搜索让我发现该类似乎还没有被包含在预览版中,我不得不将这个nuget repo添加到我的项目中: https ://www.myget.org/gallery/aspnetvnext
在那个回购中是每晚构建的asp.net vnext nuget包,其中包含我想要的类。 将以下行添加到我的主依赖项部分和两个框架依赖项部分,这对我有用:“Microsoft.Net.Http.Client”:“1.0.0.0-rc1-10049”
"dependencies": { [...], "Microsoft.Net.Http.Client": "1.0.0.0-rc1-10049" }, "frameworks": { "aspnet50": { "dependencies": { "Microsoft.Net.Http.Client": "1.0.0-rc1-10049" } }, "aspnetcore50": { "dependencies": { "Microsoft.Net.Http.Client": "1.0.0-rc1-10049" } } }
我今天遇到了同样的问题,解决方案在2016年变得更加简单了。
不再需要添加新的Nuget存储库。
添加System.Net.Http
(当前版本4.0.1-beta-23516)时,如果您的目标是clr以及核心框架版本,仍会遇到相同的错误,因此需要将依赖项复制到dnxcore框架中依赖列表,用于编译代码。
之前:
"frameworks": { "dnx451": { "dependencies": { "System.Net.Http": "4.0.1-beta-23516" } }, "dnxcore50": { } }
后:
"frameworks": { "dnx451": { "dependencies": { "System.Net.Http": "4.0.1-beta-23516" } }, "dnxcore50": { "dependencies": { "System.Net.Http": "4.0.1-beta-23516" } } }
您需要向nuget包管理器( https://www.myget.org/F/aspnetvnext )添加新源,然后将依赖项添加到project.json
文件中。 对于dnx451
和dnxcore50
:
{ "frameworks": { "dnx451": { "frameworkAssemblies": { "Microsoft.Net.Http.Client": "1.0.0-beta3-10053" } }, "dnxcore50": { "frameworkAssemblies": { "Microsoft.Net.Http.Client": "1.0.0-beta3-10053" } } }
它作为ASP.Net xNext包的一部分实现,因为它们在github上声明 :
完全托管的基于套接字的HttpMessageHandler实现。
该项目是ASP.NET vNext的一部分。 您可以在Home repo中找到ASP.NET vNext的示例,文档和入门说明。
完整的演练可以在这里找到
我今天在RC1找不到:
对于那些从那里发现这个问题的人来说, HttpClient
现在位于System.Net.Http
命名空间中。
只需将其添加到project.json
"dependencies": { ... "Microsoft.Net.Http": "2.2.7-beta" },
或者最新版本。
这个post中有一个缺失的链接给我….你需要添加https://www.myget.org/gallery/aspnetvnext NuGet源,但实际的NuGet提要URL是’ https:// www .myget.org / F / aspnetvnext / ‘。 一旦你拥有了它作为你的金块来源,其余部分就会变得生动起来。
此外,在撰写本文时(2015年6月17日),版本为“Microsoft.Net.Http.Client”:“1.0.0-beta3-10053”。
您还需要使用6月7日Matt DeKreys编辑的更新“框架”部分(dnx451和dnxcore50)