System.Web.Http v5.0.0.0にアップグレードするためのNuGetパッケージはどこにありますか?


125

Unity.WebApiバージョン5.0.0.0を使用するようにASP.NET MVC4プロジェクトをアップグレードしたばかりで、次のエラーに従ってSystem.Web.Http v 5.0.0.0が必要です。

Assembly 'Unity.WebApi, Version=5.1.0.0, Culture=neutral, PublicKeyToken=43da31bc42a85347' uses 'System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'   

現在System.Web.Http v4.0を参照していますが、次のNuGetパッケージをそれぞれの最新バージョンにアップグレードしています。

  • ANTLRv3

  • Microsoft ASP.NETユニバーサルプロバイダー

  • Microsoft.Web.Infrastructure

  • Microsoft ASP.NET MVC

  • Microsoft ASP.NETかみそり

  • Microsoft ASP.NETユニバーサルプロバイダーコアライブラリ

  • Microsoft ASP.NETユニバーサルプロバイダー

  • Microsoft ASP.NET Web API 2クライアント

  • Microsoft ASP.NET Web API 2コア

  • Microsoft ASP.NET Web API 2 Webホスト

  • Microsoft ASP.NET Web API 2

  • Microsoft ASP.NET Webページ

  • Microsoft.Web.Infrastructure

  • Webグリース

    NuGet経由。Micrososft.jQuery.Unobtrusive Validationなどの関連するJavaScriptライブラリをリストしていません。

System.Web.HttpをアップグレードするためのNuGetパッケージとは何ですか、または手動で行う必要がありますか?


NuGet Package Managerで「Stable」ではなく「Include Prerelease」を選択すると、System.Web.Httpが表示されます。それはあなたが探しているものですか?
ウィリアム

「プレリリースを含める」を選択した後、System.Web.Httpを検索することになっていますか?それともどこを見ればいいですか?
Klaus Nji 2013年

上記のコメントは無視してください!そのパッケージは古くなっています。以下のStjinの提案に従うようにしてください。不思議なことに MVC 4プロジェクトにUnity.WebApiをインストールすると、System.Web.Http参照がv5.0に自動的に更新されるため、なぜ機能しないのかわかりません。他のすべてが失敗した場合は、Unityパッケージをアンインストールして再インストールしてみてください。
ウィリアム

回答:


206

Microsoft.AspNet.WebApi.Coreパッケージが必要です。

.csprojファイルで確認できます。

<Reference Include="System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.0.0\lib\net45\System.Web.Http.dll</HintPath>
</Reference>

上記のように、Microsoft ASP.NET Web API 2 Core(id = Microsoft.AspNet.WebApi.Core)をv5.0.0.0にアップグレードしました。削除して再度追加する必要があるようですが?
クラウスNji 2013年

7
また、bin_deployableAssembliesをクリーンアップして削除し、再ビルドする必要がありました。
Klaus Nji 2013年

ほぼ同じプロジェクトを持っている。誰もが話し続けているbin_deployable Assembliesフォルダーはどこにありますか?
nzondlo 2013年

@nzondloアプリケーションを公開するときにフォルダーが生成されると思います。しかし、完全にはわかりません。
user247702

1
@nzondlo bin_deployableAssembliesは通常のフォルダですが、プロジェクトのディレクトリに存在する場合は特別な扱いを受けます。Webアプリケーションを公開すると、そのフォルダー内のすべての.dllファイルがbinディレクトリにコピーされます。NuGetが主流になる前に、WebアプリでSystem.Web.Mvc dll(およびその他)をデプロイするために使用されていました。
Steven Liekens、2016年

9

ソリューションにいくつかのプロジェクトがあります。一部のプロジェクトでは、以前に手動で参照を追加しました。NuGetを使用してWebAPIパッケージを更新したときに、これらの参照が自動的に更新されませんでした。

これらの参照を手動で更新して、ソリューションのPackagesフォルダー内のv5 DLLを指すようにするか、以下を実行できることがわかりました。

  1. 「NuGetパッケージの管理」に移動します
  2. インストールされているパッケージ「Microsoft ASP.NET Web API 2.1」を選択します
  3. [管理]をクリックして、以前に手動で追加したプロジェクトを確認します。

パッケージをアンインストールしてすぐに再インストールすると、修正されます。別の開発マシンでプロジェクトを立ち上げるときに発生しました。自動パッケージ復元がどういうわけか間違ったバージョンを取得しました。
マットJ.

1
主な問題は、メインプロジェクトのWeb.Apiの更新ですが、参照されているプロジェクトは古いバージョンをまだ使用しています。@Tonyが言及したように、ソリューション名を右クリックしてNugetパッケージの管理メニューから一緒に更新する必要があります。乾杯!
Orhaan 14

インストールパッケージMicrosoft.AspNet.WebApi.Core
C Sharper
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.