VS2015とasp.net 5を使用して、System.Net.HttpClientのインスタンスを使用してサイトをコンパイルしようとすると、次のように通知されます。
タイプまたは名前空間名「HttpClient」が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)
問題のコードにカーソルを合わせると、次のようになります。
"WebApplication1.ASP.NET 5.0 - Available"
"WebApplication1.ASP.NET Core 5.0 - Not Available"
私のproject.jsonファイルには2つのフレームワークがリストされています。
"frameworks": {
"aspnet50": { },
"aspnetcore50": { }
},
私はこれらの1つがアセンブリを持たないことによる責任であると想定していますが、それを修正する方法またはこれがどのように機能するかは本当にわかりません。
エラーをスローする代わりに、HttpClientでサイトを実行するにはどうすればよいですか?以下に投稿された問題のあるメソッド:
private async Task<string> 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リポジトリをプロジェクトに追加する必要がありました 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"
}
}
}
github に記載されているように、ASP.Net xNextパッケージの一部として実装されています。
ソケットに基づくフルマネージドのHttpMessageHandler実装。
このプロジェクトはASP.NET vNextの一部です。 ASP.NET vNextのサンプル、ドキュメント、および開始手順は、ホームリポジトリにあります。
完全なウォークスルーを見つけることができます ここ
今日RC1で見つけるのに苦労しました:
そこからこの質問を見つけた人のために、HttpClient
がSystem.Net.Http
名前空間。
これをproject.json
に追加するだけです
"dependencies": {
...
"Microsoft.Net.Http": "2.2.7-beta"
},
または最新バージョンが何であれ。
このスレッドにミッシングリンクがありました.... 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日のマットデクレイズ編集による更新された「フレームワーク」セクションを使用する必要があります(dnx451およびdnxcore50)