Visual Studio でネイティブ マルチターゲットを利用し、古いプロジェクトを作成するUse native multi-targeting in Visual Studio to build old projects

通常、最新バージョンの Visual Studio をインストールするときには、プロジェクトを更新することをお勧めします。Normally, we recommend that you update your projects when you install the latest version of Visual Studio. プロジェクトとコードの更新のコストは、新しい IDE、コンパイラ、ライブラリ、およびツールのメリットで十分に補うことができます。The cost of updating your projects and code is usually more than offset by the benefits of the new IDE, compiler, libraries, and tools. ただし、いくつかのプロジェクトを更新できないことがわかっています。However, we know that you may not be able to update some projects. 古いライブラリやメンテナンス上の理由からアップグレードすることできないプラットフォームに関連付けられているバイナリがある場合があります。You may have binaries that are tied to older libraries or platforms that for maintenance reasons you can’t upgrade. より新しいコンパイラに移動した場合に壊れる非標準の言語構成要素をコードで使用している場合があります。Your code may use non-standard language constructs that would break if you moved to a more recent compiler. Visual C の特定のバージョン用にコンパイルされたサード パーティ製のライブラリ コードにコードが依存している場合があります。Your code might rely on 3rd party libraries compiled for a specific version of Visual C++. または、特定の古いバージョンの Visual C++ を対象にする必要がある他のライブラリを生成することがあります。Or you may produce libraries for others that must target a specific older version of Visual C++.

幸いにも、以前のコンパイラ ツールセットとライブラリを対象としたプロジェクトのビルドに、Visual Studio 2017 と Visual Studio 2015 を使用できます。Fortunately, you can use Visual Studio 2017 and Visual Studio 2015 to build projects that target older compiler toolsets and libraries. IDE での新機能を利用するために、Visual Studio 2010、Visual Studio 2012、Visual Studio 2013 または Visual Studio 2015 のプロジェクトをアップグレードする必要はありません。You don't have to upgrade a Visual Studio 2010, Visual Studio 2012, Visual Studio 2013, or Visual Studio 2015 project to take advantage of new features in the IDE:

  • 新しい C++ のリファクタリング機能およびエディターの試験的な機能New C++ refactoring capabilities and editor experimental features
  • 新しい診断ツール デバッガー ウィンドウと [エラー一覧] ウィンドウNew Diagnostics tools debugger window and Error List window
  • 刷新されたブレークポイント、例外処理ウィンドウ、および新しい PerfTipsRevamped breakpoints, exceptions window and new PerfTips
  • 新しいコード ナビゲーションおよび検索ツールNew code navigation and search tools
  • 新しい C++ クイック修正および Productivity Power Tools 拡張機能New C++ Quick fixes and the Productivity Power Tools extensions.

Visual Studio 2008 プロジェクトを対象とすることもできますが、そのまま使用することはできません。You can also target Visual Studio 2008 projects, but they can't be used unchanged. 詳細については、「Visual Studio 2008 での手順」を参照してください。For details, see the Instructions for Visual Studio 2008 section.

最新バージョンの Visual Studio では、ネイティブ マルチターゲットとプロジェクトのラウンドトリップをサポートします。The latest versions of Visual Studio support native multi-targeting and round-tripping of projects. ネイティブ マルチターゲットは、Visual Studio の以前のバージョンでインストールされたツールセットを使用してビルドできる最新の IDE の機能です。Native multi-targeting is the ability of the latest IDE to build using toolsets installed by previous versions of Visual Studio. ラウンド トリップは、プロジェクトに変更を加えずに以前のバージョンの IDE で作成されたプロジェクトを読み込むことができる最新の IDE の機能です。Round-tripping is the ability of the latest IDE to load projects created by a previous IDE version without making any changes to the project. 既存のバージョンと Visual Studio の最新バージョンを両方インストールする場合、IDE の新しいバージョンを既存のバージョンのコンパイラやツールと併用して、プロジェクトをビルドすることができます。If you install the latest version of Visual Studio side-by-side with your existing version, you can use the new version of the IDE with the compiler and tools from the existing version to build your projects. チームの他のメンバーは、古いバージョンの Visual Studio でプロジェクトを引き続き使用できます。Other members of your team can continue to use the projects in the older version of Visual Studio.

古いツールセットを使用する場合は、最新の IDE の多くの機能を使用できますが、C++ コンパイラ、ライブラリ、およびビルド ツールの最新の高度な機能は使用できません。When you use an older toolset, you can take advantage of many of the latest IDE features, but not the latest advances in the C++ compiler, libraries and build tools. たとえば、新しい言語の準拠の強化や新しいデバッグおよびコード分析機能を利用することも、最新のツールセットで高速なビルド スループットを実現することもできません。For example, you won't be able to use the new language conformance improvements, new debugging and code analysis features, or get the faster build throughput of the latest toolset. 古いツールセットと互換性がない IDE 機能もいくつかあります。There are also some IDE features that are incompatible with older toolsets. たとえば、型情報がメモリ プロファイラーに見つからない可能性があり、リファクタリング操作 未加工の文字列リテラルへの変換 で C++11-compliant コードが生成され、Visual Studio 2012 または以前のツールセットを使用するときにそのコードがコンパイルされないことがあります。For example, type information may be missing in the Memory Profiler, and the refactoring operation Convert to Raw string literals generates C++11-compliant code that won't compile when you use Visual Studio 2012 or older toolsets.

Visual Studio でネイティブ マルチターゲットを使用する方法How to use native multi-targeting in Visual Studio

以前のバージョンと Visual Studio を並列でインストールした後は、新しいバージョンの Visual Studio で、既存のプロジェクトが開かれます。Once you have installed Visual Studio side-by-side with your older version, open your existing project in the new version of Visual Studio. プロジェクトが読み込まれると、Visual Studio が、最新の C++ コンパイラおよびライブラリを使用するようにアップグレードするかどうかを確認します。When the project is loaded, Visual Studio asks you whether you want to upgrade it to use the latest C++ compiler and libraries. プロジェクトで以前のコンパイラおよびライブラリを保持する必要があるので、 [キャンセル] ボタンをクリックします。Since you want the project to keep the older compiler and libraries, choose the Cancel button.

Visual Studio では、プロジェクトのアップグレードが何度も要求されます。Visual Studio is persistent about upgrading your project. プロジェクトを読み込むたびにアップグレードのダイアログを表示しないようにするには、プロジェクトまたはプロジェクトでインポートされる .props ファイルまたは .targets ファイルに、次のプロパティを定義します。To avoid seeing the upgrade dialog every time you load the project, you can define the following property in your projects, or in the .props or .targets files they import:


プロジェクトをアップグレードする場合は、このプロパティを削除する必要があります。You must remove this property when you want to upgrade your projects.

アップグレードしないことを選択した場合は、Visual Studio はソリューションまたはプロジェクト ファイルを変更しません。If you choose not to upgrade, Visual Studio makes no changes to your solution or project files. プロジェクトをビルドしたときに生成されたバイナリは、古いバージョンの Visual Studio でビルドしたものと完全な互換性があります。When you build the project, the generated binaries are fully compatible with the ones you built with the older version of Visual Studio. これは、Visual Studio が同じ C++ コンパイラを使用し、古い IDE に同梱されている同じライブラリをリンクするためです。This is because Visual Studio uses the same C++ compiler and links the same libraries that your older IDE shipped with. アップグレード ダイアログで、 [キャンセル] を選択した場合にインストールされている古いバージョンの Visual Studio を保持するように促す警告が表示されるのもこのためです。That is also why the upgrade dialog warns you to keep the older Visual Studio version installed if you choose Cancel.

Visual Studio 2008 での手順Instructions for Visual Studio 2008

Visual Studio 2008 には、VCBuild という名前の C++ 専用のビルドシステムがありました。Visual Studio 2008 had its own dedicated build system for C++ called VCBuild. Visual Studio 2010 以降、MSBuild を使用するように Visual Studio C++ プロジェクトが変更されました。Starting in Visual Studio 2010, Visual Studio C++ projects were changed to use MSBuild. つまり、完全なアップグレードまたは複数のターゲットをアップグレードする場合、最新バージョンの Visual studio で Visual Studio 2008 プロジェクトをビルドするには、更新手順を実行する必要があります。This means that whether upgrading permanently or multi-targeting you must go through an update step to build your Visual Studio 2008 projects in the latest version of Visual Studio. 更新されたプロジェクトでは、Visual Studio 2008 IDE を使用して作成されたバイナリと完全に互換性があるバイナリを引き続き生成します。Your updated project still generates binaries that are fully compatible with binaries created using the Visual Studio 2008 IDE.

最初に、Visual Studio の現在のバージョンだけでなく、Visual Studio 2008 と同じコンピューターに Visual Studio 2010 をインストールする必要があります。First, in addition to the current version of Visual Studio, you must install Visual Studio 2010 on the same computer as Visual Studio 2008. Visual Studio 2008 プロジェクトを対象とするために必要な MSBuild スクリプトをインストールするのは、Visual Studio 2010 のみです。Only Visual Studio 2010 installs the MSBuild scripts that are required to target Visual Studio 2008 projects.

次に、Visual Studio 2008 のソリューションとプロジェクトを Visual Studio の現在のバージョンに更新する必要があります。Next, you must update your Visual Studio 2008 solution and projects to the current version of Visual Studio. アップグレードの前に、プロジェクトおよびソリューション ファイルのバックアップを作成することをお勧めします。We recommend you create a backup of your projects and solution files before the upgrade. アップグレード プロセスを開始するには、現在のバージョンの Visual Studio でソリューションを開きます。To start the upgrade process, open the solution in the current version of Visual Studio. アップグレードのプロンプトが表示された場合、表示された情報を確認し、 [OK] を選択してアップグレードを開始します。When you get the upgrade prompt, review the information presented, and then choose OK to start the upgrade. ソリューションに複数のプロジェクトがある場合、更新する必要があります。既存の .vcproj ファイルに加えて、ウィザードによって新しい .vcxproj プロジェクト ファイルが作成されます。If you have more than one project in the solution, you must update The wizard creates new .vcxproj project files side-by-side with the existing .vcproj files. 元の .sln ファイルのコピーを保持する限り、アップグレードによる既存の Visual Studio 2008 プロジェクトへの他の影響はありません。As long as you also have a copy of the original .sln file, the upgrade has no other impact on your existing Visual Studio 2008 projects.


次の手順は、マルチターゲットシナリオにのみ適用されます。The following steps apply to multi-targeting scenarios only. プロジェクトを後のツールセットに永続的にアップグレードする場合は、次の手順として、プロジェクトを保存し、Visual Studio 2019 で開き、そこに表示されるビルドの問題を解決します。If you intend to permanently upgrade the project to a later toolset, then your next step is to save the project, open it in Visual Studio 2019, and address the build issues that appear there.

アップグレードが完了したときに、ログ レポートにいずれかのプロジェクトのエラーまたは警告がある場合は、それらを慎重に確認します。When the upgrade completes, if the log report has errors or warnings for any of your projects, review them carefully. VCBuild から MSBuild への変換には、問題が発生する可能性があります。The conversion from VCBuild to MSBuild can cause issues. レポートに表示されるすべてのアクション項目を理解して実装したことを確認してください。Make sure you understand and implement any action items listed in the report. アップグレード ログのレポートおよび VCBuildMSBuild に変換するときに発生する可能性のある問題の詳細については、「C++ Native Multi-Targeting」 (C++ Native Multi-Targeting) ブログの投稿を参照してください。For more information on the upgrade log report and issues that may occur when converting VCBuild to MSBuild, see this C++ Native Multi-Targeting blog post.

プロジェクトのアップグレードが完了し、ログ ファイルに記載されたすべての問題を解決したら、ソリューションの実際のターゲットが最新のツールセットになります。When the project upgrade is completed, and you have corrected any issues in the log file, your solution actually targets the latest toolset. 最後の手順として、Visual Studio 2008 のツールセットを使用するようにソリューション内の各プロジェクトのプロパティを変更します。As the final step, change the properties for each project in the solution to use the Visual Studio 2008 toolset. 現在のバージョンの Visual Studio ソリューションでソリューションを読み込んだ状態で、プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 [ソリューション エクスプローラー] でプロジェクトを右クリックし、 [プロパティ] を選択します。With the solution loaded in the current version of Visual Studio, for each project in the solution, open the Project Property Pages dialog box: Right-click on the project in Solution Explorer and then select Properties. [プロパティ ページ] ダイアログ ボックスで、 [構成] ドロップダウン リストの値を [すべての構成] に変更します。In the Property Pages dialog box, change the Configuration drop-down value to All Configurations. [構成プロパティ][全般] を選択し、 [プラットフォーム ツールセット]Visual Studio 2008 (v90) に変更します。In Configuration Properties, select General, and then change Platform Toolset to Visual Studio 2008 (v90).

この変更後、現在のバージョンの Visual Studio でソリューションをビルドするときに、Visual Studio 2008 のコンパイラとライブラリが使用されます。After this change, the Visual Studio 2008 compiler and libraries are used to generate project binaries when you build the solution in the current version of Visual Studio.

以前の Visual Studio ツールセットをインストールします。Install an older Visual Studio toolset

アップグレードできないまたはアップグレードしたくない古い Visual Studio C++ プロジェクトがあるものの、プラットフォーム ツールセットのバージョンがプロジェクトに一致していないことがあります。You may have an old Visual Studio C++ project that you can't or don't want to upgrade, but not the platform toolset version that matches your project. この場合、ツールセットを取得するには、無料の Visual Studio Community または必要なバージョンの Express エディションをインストールできます。In this case, to get the toolset, you can install the free Visual Studio Community or Express edition of the version you need. Visual Studio 2008 からのすべてのバージョンで、現在の Visual Studio のバージョンからそのバージョンをターゲットにするために必要なコンパイラ、ツール、およびライブラリをインストールできます。Every version of Visual Studio from Visual Studio 2008 on can install the compiler, tools, and libraries you need to target that version from the current Visual Studio. Microsoft ダウンロード センターで特定のバージョンの Visual Studio を検索してダウンロードしてください。Search the Microsoft Download Center to find and download a particular version of Visual Studio. セットアップ中に、C++ のインストール オプションを選択したことを確認してください。Make sure you choose the C++ installation options during setup. セットアップの完了後は、そのバージョンの Visual Studio を実行して更新をインストールします。After setup completes, run that version of Visual Studio to install any updates. また、必要になる可能性がある Windows Update の変更を確認します。Also check for any Windows Update changes that might be required. すべての更新プログラムを取得するには、この更新プログラムの確認処理を複数回繰り返す必要があります。This update check process may need to be repeated more than once to get every update.

現在利用できるダウンロードについては、以前の Visual Studio ソフトウェアのダウンロードに関するページを参照してください。For the currently available downloads, see Download older Visual Studio software.

これらの製品がインストールされているときに、 [プロパティ ページ] ダイアログ ボックスの [プラットフォーム ツールセット] プロパティ ドロップダウンの一覧が自動的に更新され、使用できるツールセットが表示されます。When these products are installed, the Platform Toolset property drop-down in the Property Pages dialog box is automatically updated to show the available toolsets. 最新バージョンの Visual Studio を使用して、古いバージョンのツールセットのプロジェクトをビルドすることができます。それらを変換またはアップグレードする必要はありません。You can now use the latest version of Visual Studio to build projects for those older versions of the toolset without converting or upgrading them.

関連項目See also

以前のバージョンのビジュアルからのプロジェクトのアップグレードC++Upgrading projects from earlier versions of Visual C++
Visual Studio の C++ 準拠の強化C++ conformance improvements in Visual Studio