LoginSignup
0
0

NuGet で取得したパッケージが include 解決できなかった時の対処

Posted at

結論から言えば、cpprestsdk を VisualStudio2022 で使おうとした、おま環の話でした。

パッケージを NuGet でインストールする

ツール NuGet パッケージマネージャー ソリューションの NuGet パッケージの管理 からウィンドウを開きます。
image.png
参照欄で cpprestsdk を検索して、パッケージを探します。いくつか出てきますが、今回は公式が公開している新しいものを選びます。追加するプロジェクトをチェックし、インストールを押せば完了。
image.png
プロジェクトのルートディレクトリに 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>

PlatformToolsetv142 を指定するか、Force-Enable-cpprestsdk の指定を追加する必要があるようです。

Project.vcxproj
  <PropertyGroup Label="UserMacros">
    <Force-Enable-cpprestsdk>true</Force-Enable-cpprestsdk>
  </PropertyGroup>

プロジェクトファイルで上記を追加して解決。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0