web-dev-qa-db-ja.com

ASP.NET 5.0のHttpClientが見つかりませんか?

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;
    }
}
22
damccull

ようやくすべてうまくいきました。 @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"
        }
    }
} 
15
damccull

私は今日同じ問題に遭遇しましたが、解決策は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"
      }
    }
  }
11
Marco

Nugetパッケージマネージャー( https://www.myget.org/F/aspnetvnext )に新しいソースを追加してから、project.jsonファイルに依存関係を追加する必要があります。 dnx451dnxcore50の両方:

{
   "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のサンプル、ドキュメント、および開始手順は、ホームリポジトリにあります。

完全なウォークスルーを見つけることができます ここ

6
Yuval Itzchakov

今日RC1で見つけるのに苦労しました:

そこからこの質問を見つけた人のために、HttpClientSystem.Net.Http名前空間。

4
Kevin Stricker

これをproject.jsonに追加するだけです

"dependencies": {
    ...
    "Microsoft.Net.Http": "2.2.7-beta"
},

または最新バージョンが何であれ。

3
Alkasai

このスレッドにミッシングリンクがありました.... 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)

0
Martin Kearn