バックグラウンド
しばらく前に作成したいくつかの古い Visual Studio アプリケーションをオープン ソース化しています。新しい VS2012 環境を使用して新しいソリューションを作成し、プロジェクトを git リポジトリとしてセットアップしました。ソース コードに変更を加えることなく、Visual Studio 2012 ですべて正常に動作するようになりました。新しいプロジェクト構成で適切なライブラリをリンクしていることを確認するだけで済みました。
Github からプロジェクトをダウンロードする他のユーザーと最大限の互換性を持つように、これらのプロジェクトを構成したいと思います。このマシンには、最新の VS2012 バージョンとともに VS2010 がインストールされています。VS2012 の両方のプロジェクトですべてが正しく機能するようになった後、VS2010 でそれらを開こうとしました。
ビルドしようとすると、1 つのエラーが発生しました。
Specified platform toolset (v110) is not installed or invalid.
Please make sure that a supported PlatformToolset value is selected.
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets 518
私が試したこと
そこで、プロジェクトのプロパティを開いて に移動するConfiguration Options --> General
と、プラットフォーム ツールセットは実際に に設定されていましたVisual Studio 2012 (v110)
。この入力はドロップダウン ボックスで、v110
値は表示されません。代わりに 2 つの選択肢があります。
- v100
- v90
これらはそれぞれ VS2010 と VS2008 に対応しています。値を v100 に変更して再構築すると、エラーは発生せず、プログラムは Visual Studio 2010 環境で問題なく動作します。
プロジェクトを Visual Studio 2012 でバックアップして開くと、古いプロジェクト ファイルがあることが通知され、アップグレードするかどうかを尋ねられた場合は、はいと答えてアップグレードします。再構築して実行し、すべてがまだ機能していることを確認します。VS2012 で構成オプションを開くと、プラットフォーム ツールセットが Visual Studio 2012 (v110) に戻りますが、ドロップダウン入力をクリックすると、さらにいくつかの選択肢が表示されます。
- ビジュアル スタジオ 2012 (v110)
- v110_wp80
- Visual Studio 2012 - Windows XP (v110_xp)
- ビジュアル スタジオ 2010 (v100)
- ビジュアル スタジオ 2008 (v90)
- ‹親またはプロジェクトのデフォルトから継承›</li>
私の質問
これは私にいくつかの質問をもたらしました。私はそれらすべてをポーズするつもりです。できるだけ多くの情報が得られるとよいのですが、そのうちの 1 つだけに適切な回答があれば、問題が解決する可能性があります。
Visual Studio の新しいバージョンに固有の機能を使用していない場合、できるだけ多くのバージョン (つまり、2008、2010、または 2012) で変更せずに開いて実行できるソリューションをセットアップすることは可能ですか? もしそうなら、どのように?
Visual Studio 2012 内からプラットフォーム ツールセットを v90 (VS2008)に設定し、ビルドして実行できる場合、これは VS2012、VS2010、および VS2008 を使用しているユーザーに対してビルドおよび実行できることを意味しますか?
オプションは正確に何をし
<inherit for parent or project defaults>
ますか?プロジェクトのデフォルトはどのように設定されますか? これを使用して、インストールされているプラットフォーム ツールセットが機能するものを使用するように Visual Studio に指示できますか。Visual Studio のPlatform Toolset以外に、他の開発環境との互換性を高めるために設定できるオプションはありますか?