Visual Studio 2008 で作成したプロジェクトを変換すると MSB4211 の警告が表示される

こんにちは、Visual Studio サポートチームです。

今回は Visual Studio 2008 で作成した Visual C++ のプロジェクトを、Visual Studio 2010、2012、および 2013 のプロジェクトに変換した場合に、MSB4211 の警告が表示される現象についてご案内します。

なお、この問題は Visual Studio 2015 以降では修正されています。

 

現象
Visual Studio 2008 で作成したプロジェクトを、Visual Studio 2010、2012、および 2013 のプロジェクトに変換した場合に、以下の警告が表示される場合があります。

 

警告メッセージ例
--------------------------------
Sample.vcproj: MSB4211: C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets (87,5); プロパティ "TargetPlatformVersion" は初めて値に設定されますが、これは "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120Microsoft.Cpp.Common.props(103,5)" で既に使用されています。
--------------------------------
※ TargetPlatformVersion のマクロ名はプロジェクトにより異なるものが表示されます。

 

原因
本警告は Visual Studio 2010、2012、2013 の不具合に起因して表示されています。

Visual Studio 2008 と Visual Studio 2010 以降のバージョンでは、Visual C++ のビルド ツールの構成が変更され、VCBuild から MSBuild ベースのビルド システムに変更されました。これに伴ってプロジェクト ファイルの構成も変更されていますが、この影響で、本来、問題のないプロジェクトの変換であっても、Visual Studio 2010、2012、2013 では MSB4211 の警告を表示するケースがあります。

 

影響
プロジェクト変換時の上記の警告は、ビルド時に問題が発生する可能性がある個所を事前に通知するものです。このため、プロジェクト変換後のビルドにおいてエラーや警告が表示されなければ、プロジェクト変換時に MSB4211 が表示されていたとしても無視して問題ありません。

 

製品の不具合でご迷惑をおかけし申し訳ありません。Visual Studio 2008 からのプロジェクト変換時に MSB4211 の警告が表示された場合、上記内容をご参考の上、実際のビルド時にエラーや警告が表示されていないかご確認くださいますようお願いいたします。