無料ブログはココログ

« MFCリボンアプリでいつのまにかリボン上のコントロールが使えなくなっている場合の原因と対処方法 | トップページ | MySQL Connector/C++ を Visual Studio でビルドする »

2017年2月26日 (日)

同じSDKで新しいSDKを入れても古いSDKが適応される場合の対処方法

Xtreme ToolkitPro に限らずですが、同じ SDK でも後から新しいバーションをインストールすると、古いバージョンの SDK がインクルードされたりする場合があります。
これは VisualStudio の設定に古いバージョンの SDK のインクルード先が記述されているためです。原因は SDK のインストーラによる問題の場合が多いです。

一番いいのは古い SDK をアンインストールすることですが、場合によってはビルド不安定にしかねなかったり、メンドクサイ等があります。その SDK にバージョンを管理するマネージャがあれば一番いいのかもしれませんがそういう SDK は滅多にありません。

Xtreme ToolkitPro を例に説明します。Xtreme ToolkitPro の v17.2.0 をインストールした後に v17.3.0 をインストールした場合です。

Xtreme ToolkitPro では後から新しいバージョンの SDK をインストールしても古いバージョンがインクルードされてしまうことがあります。
これを直すにはいくつか設定を変更する必要があります。

まずプロジェクトのプロパティを開きます。
VC++ ディレクトリの項目を見ると赤枠で囲った部分が古い SDK(17.2.0) の場所が記述されています。その後に 17.3.0 の記述があります。17.2.0 は不要なので 17.2.0 の部分を削除します。これを Debug、Release、x64、Win32 の組み合わせのすべて設定を変更する人用があります。

Sdk_folder_01


次に VisualStudio の設定を変更します。
C:\Users\各ユーザー名\AppData\Local\Microsoft\MSBuild\v4.0
のフォルダ内に
Microsoft.Cpp.x64.user.props
Microsoft.Cpp.Win32.user.props
という二つの XML ファイルがあります。

Sdk_folder_02


これをテキストエディタで開くと、

Microsoft.Cpp.x64.user.props

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets">
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup />
  <PropertyGroup>
    <SourcePath>$(SourcePath);D:\SDK\Xtreme ToolkitPro v17.2.0\Source;D:\SDK\Xtreme ToolkitPro v17.3.0\Source</SourcePath>
    <LibraryPath>$(LibraryPath);D:\SDK\Xtreme ToolkitPro v17.2.0\Lib\vc120x64;D:\SDK\Xtreme ToolkitPro v17.2.0\Lib\vc140x64;D:\SDK\Xtreme ToolkitPro v17.3.0\Lib\vc120x64;D:\SDK\Xtreme ToolkitPro v17.3.0\Lib\vc140x64</LibraryPath>
    <IncludePath>$(IncludePath);D:\SDK\Xtreme ToolkitPro v17.2.0\Source;D:\SDK\Xtreme ToolkitPro v17.3.0\Source</IncludePath>
  </PropertyGroup>
  <ItemDefinitionGroup />
  <ItemGroup />
</Project>

Microsoft.Cpp.Win32.user.props

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets">
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup />
  <PropertyGroup>
    <SourcePath>$(SourcePath);D:\SDK\Xtreme ToolkitPro v17.2.0\Source;D:\SDK\Xtreme ToolkitPro v17.3.0\Source</SourcePath>
    <LibraryPath>$(LibraryPath);D:\SDK\Xtreme ToolkitPro v17.2.0\Lib\vc120;D:\SDK\Xtreme ToolkitPro v17.2.0\Lib\vc140;D:\SDK\Xtreme ToolkitPro v17.3.0\Lib\vc120;D:\SDK\Xtreme ToolkitPro v17.3.0\Lib\vc140</LibraryPath>
    <IncludePath>$(IncludePath);D:\SDK\Xtreme ToolkitPro v17.2.0\Source;D:\SDK\Xtreme ToolkitPro v17.3.0\Source</IncludePath>
  </PropertyGroup>
  <ItemDefinitionGroup />
  <ItemGroup />
</Project>

上記のようにこちらにも古いバージョンの 17.2.0 が記述されています。
これも消去します。
Visual Studio 2015 を立ち上げ直してリビルドすると新しい SDK が適応されるようになります。

« MFCリボンアプリでいつのまにかリボン上のコントロールが使えなくなっている場合の原因と対処方法 | トップページ | MySQL Connector/C++ を Visual Studio でビルドする »

プログラミング」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« MFCリボンアプリでいつのまにかリボン上のコントロールが使えなくなっている場合の原因と対処方法 | トップページ | MySQL Connector/C++ を Visual Studio でビルドする »