結論から言えば、cpprestsdk を VisualStudio2022 で使おうとした、おま環の話でした。
パッケージを NuGet でインストールする
ツール
NuGet パッケージマネージャー
ソリューションの NuGet パッケージの管理
からウィンドウを開きます。
参照欄で cpprestsdk
を検索して、パッケージを探します。いくつか出てきますが、今回は公式が公開している新しいものを選びます。追加するプロジェクトをチェックし、インストールを押せば完了。
プロジェクトのルートディレクトリに packages
が作成され、ソースファイルが追加されます。
Include の解決に失敗する
#include <cpprest/http_client.h>
通常はインストールすればパス解決もされるはずですが、読み込みに失敗します。これは上記でインストールしたバージョンが v142
となっており、つまり VisualStduio2019 用のパッケージとなっていることが原因でした。
\packages\cpprestsdk.v142.2.10.15\build\native\cpprestsdk.v142.targets
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Force-Enable-cpprestsdk)' == '' And ('$(PlatformToolset)' != 'v142')">
<Disable-cpprestsdk>true</Disable-cpprestsdk>
</PropertyGroup>
<PropertyGroup Condition="'$(Force-Disable-cpprestsdk)' != ''">
<Disable-cpprestsdk>true</Disable-cpprestsdk>
</PropertyGroup>
PlatformToolset
で v142
を指定するか、Force-Enable-cpprestsdk
の指定を追加する必要があるようです。
Project.vcxproj
<PropertyGroup Label="UserMacros">
<Force-Enable-cpprestsdk>true</Force-Enable-cpprestsdk>
</PropertyGroup>
プロジェクトファイルで上記を追加して解決。