以前のバージョンの Visual Studio からの C++ プロジェクトのアップグレード

以前のバージョンの Visual Studio で作成されたプロジェクトをアップグレードするには、最新バージョンの Visual Studio でプロジェクトを開きます。 Visual Studioプロジェクトを現在のスキーマにアップグレードできます。

[いいえ] を選択した場合、プロジェクトはアップグレードされません。 2010 Visual Studio 以降で作成されたプロジェクトの場合でも、新しいバージョンの Visual Studio でプロジェクトを使用できます。 古いツールセットを引き続き対象とするには、プロジェクトのプロパティを設定します。 コンピューター上に古いバージョンの Visual Studio をそのまま使用する場合、そのツールセットは新しいバージョンで使用できます。 たとえば、Windows XP でプロジェクトを引き続き実行する必要がある場合、Visual Studio 2019 にアップグレードできます。 次に、プロジェクトのプロパティで、v141_xp 以前としてツールセットを指定します。 詳細については、「Visual Studio でネイティブ マルチ ターゲットを利用し、古いプロジェクトを作成する」を参照してください。

[はい] を選択すると、プロジェクトが適切にアップグレードされます。 以前のバージョンに変換して戻す必要があります。 アップグレード シナリオでは、既存のプロジェクト ファイルとソリューション ファイルのバックアップ コピーを作成する方法が良い理由です。

Note

Visual Studio 2022 では、あるプロジェクトの種類または.dsp拡張機能のアップグレードのサポートが.dsw非推奨になりました。 以前のバージョンの Visual Studio (Visual Studio 2019 など) を使用してこれらのプロジェクトをアップグレードし、Visual Studio 2022 でアップグレードして、Visual Studio の最新のツールと機能を使用できます。

レポートのアップグレード

プロジェクトをアップグレードすると、アップグレード レポートが表示されます。 また、レポートはプロジェクト フォルダーにも UpgradeLog.htm として保存されます。 アップグレード レポートには、変換中に検出された問題の概要が表示されます。 次のような変更に関する情報が一覧表示されます:

  • プロジェクトのプロパティ。

  • インクルード ファイル。

  • コンパイラ準拠の強化または標準の変更により、正常にコンパイルされなくなったコード。

  • 使用できなくなった Visual Studio または Windows 機能に依存するコード。 または、Visual Studio の既定のインストールに含まれていないヘッダー ファイル、または製品から削除されたヘッダー ファイル。

  • API の名前変更、関数シグネチャの変更、非推奨の関数など、API の変更によってコンパイルされなくなったコード。

  • 警告がエラーになるなど、診断の変更によってコンパイルされなくなったコード

  • 特に /NODEFAULTLIB が使用される場合の、変更されたライブラリによるリンカー エラー。

  • 動作の変更による実行時エラーまたは予期しない結果。

  • ツールで導入されたエラー。 問題が発生した場合には、通常のサポート チャネルを通じて、または Visual Studio C++ 開発者コミュニティ ページを使用して、Visual C++ チームに報告してください。

アップグレードされたプロジェクトおよびソリューションの一部くが、変更なしで正常にビルドできます。 ただし、ほとんどのプロジェクトでは、プロジェクト設定とソース コードの両方を変更する必要があります。 これらの問題を修正する正しい方法は 1 つはありません。ただし、段階的なアプローチを使用することをお勧めします。 開始する前に、「アップグレードに関する 潜在的な問題の概要」 で、さまざまな種類の一般的なエラーの詳細を確認してください。

  1. プラットフォーム ツールセット、C++ 言語標準、および Windows SDK バージョン (該当する場合) を優先バージョンに設定します。 (プロジェクト>プロパティ>プロパティの構成>一般)

  2. エラーが多い場合は、修正中に一部のオプションを一時的にオフにできます。 /permissive- オプションをオフにするには、[プロジェクト]>[プロパティ]>[プロパティの構成]>[C/C++]>[言語] を使用します。 [コード分析] オプションをオフにするには、[プロジェクト]>[プロパティ]>[プロパティの構成]>[コード分析] を使用します。

  3. すべての依存関係が存在し、含めるパスまたはライブラリの場所を確認します。 ([プロジェクト]>[プロパティ]>[プロパティの構成]>[VC++ ディレクトリ])

  4. 存在しなくなった API への参照によって発生するエラーを特定して修正します。

  5. コンパイルを妨げる残りのエラーを修正します。 一般的な エラーの修正については、「潜在的なアップグレードの問題の概要」 を参照してください。

  6. /permissive- の設定を戻し、以前に MSVC でコンパイルした非準拠のコードが原因で発生した新しいエラーを修正します。

  7. コード分析を有効にし、許容可能と見なされなくなった潜在的な問題や古いコーディング パターンを特定します。 コード分析で多くのエラーにフラグが設定されている場合は、警告の一部をオフすると、最初に最も重要な警告に注力できます。 IDE は、いくつかの種類の問題のクイック修正に役立ちます。

  8. コードを最新化する他の機会を検討してください。 たとえば、カスタム データ構造とアルゴリズムを C++ 標準ライブラリまたは Boost オープンソース ライブラリのデータ構造に置き換えるなどです。 標準機能を使用すると、他のユーザーがコードを簡単に管理できます。 このコードは、標準委員会とより広範な C++ コミュニティに関する多くの専門家によって十分にテストされ、レビューされたと確認済みです。

修正が困難なエラーの場合は、解決策を検索したり、Microsoft Learn Q&A質問を投稿したりできます。 C++ コンパイラとツールの問題については、C++ Developer Community をご利用ください。

このセクションの内容

アップグレード時の潜在的な問題の概要
Universal CRT へのコードのアップグレード
WINVER と_WIN32_WINNTの更新
ライブラリ内部の依存関係を修正する
浮動小数点の移行に関する問題
Visual Studio で非推奨になった C++ 機能
VCBuild と MSBuild
サード パーティ製ライブラリの移植

関連項目

Visual Studio の Visual C++ の新機能
Visual C++ 2003 ~ 2015 の変更履歴
非標準動作
ポート データ アプリケーション