Arm32 から Arm64 へのアプリ アーキテクチャの更新

このガイドでは、Visual Studio を使用して必要な構成を追加することで、32 ビット Arm プラットフォーム アーキテクチャをサポートする既存のアプリを、より更新された 64 ビット Arm アーキテクチャに変更するための推奨手順について説明します。 この更新プログラムは、64 ビット Arm (ARM64/AArch64) プロセッサを使用する Arm デバイス上の最新の Windows でアプリを実行するのに役立ちます。

このトピックは、ARM64 ターゲットを持たない UWP アプリに関連します。 以前の UWP プロジェクト テンプレートでは ARM32 (または AArch32) ターゲットが生成されましたが、ARM64 (AArch64) のサポートは含まれていませんでした。

アプリの現在のソリューション プラットフォームで ARM64 が存在するかどうかを確認するには、Visual Studio でアプリ プロジェクト コードを開き、Standard ツール バーの [ソリューション プラットフォーム] ドロップダウン メニューで Configuration Manager... ([ビルド] メニューでも使用可能) を選択します。ここで、ソリューション プラットフォームの一覧を表示し、ARM64 が存在するかどうかを確認できます。

Note

Arm プロセッサ で実行されている Windows デバイス (例: Qualcomm の Snapdragon プロセッサ) は、AArch32 (Arm32) をサポートしなくなります。 この変更は、現在 AArch32 (Arm32) を対象とするユニバーサル Windows プラットフォームアプリに影響します。 32 ビット Arm バージョンのアプリケーションのサポートは、Windows 11. の将来のリリースで削除される予定です。 ARM32 サポート用のシステム バイナリ ( sysarm32 フォルダーにあります) も削除されます。 この変更後、影響を受けるアプリケーションの数が少ない場合、アプリの機能が異なる場合があり、パフォーマンスの違いに気付く場合があります。 そのため、ターゲット プラットフォームを AArch64 (Arm64) に更新することをお勧めします。これは、お客様が引き続き最高のエクスペリエンスを楽しんでいただくために、できるだけ早く、すべての Windows on Arm デバイスでサポートされています。 このページのガイダンスに従って、アプリケーションを AArch64 (Arm64) に更新します。

Arm64 構成をプロジェクトに追加する

ARM64 ソリューション プラットフォームを既存のアプリ プロジェクト コードに追加するには:

  1. Visual Studio でソリューション (プロジェクト コード) を開きます (Visual Studio 2017 バージョン 15.9 以降が必要です)。
  2. [標準] ツール バーの [Solution Platforms] (ソリューション プラットフォーム) ドロップダウン メニュー (または [Build] (ビルド) メニュー) で、[Configuration Manager...] (構成マネージャー...) を選択します。
  3. [アクティブ なソリューション プラットフォーム] ドロップダウン メニューを開き、 <new...> を選択します。
  4. [Type or select the new platform]\(新しいプラットフォームの入力または選択\) ドロップダウン メニューで、 ARM64 を選択し、[Create new project platforms]\(新しいプロジェクト プラットフォームの作成\) チェックボックスが有効になっている [copy settings from]\(設定のコピー元\) の値が ARM に設定されていることを確認し、 OK を選択します。

Arm64 ソリューションを構築する

Arm64 ソリューション プラットフォームを既存のプロジェクトまたはソリューションに追加したら、Arm64 バージョンのアプリが正しくビルドされることを確認するには、[アクティブ ソリューション プラットフォーム] ウィンドウを閉じて、ビルド設定を Debug から Release に変更します。 [ビルド] ドロップダウン メニューで、[ソリューションのリビルド] を選択し、プロジェクトのリビルドを待ちます。 "すべてリビルドに成功しました" という出力が表示されます。 表示されない場合は、以下の「トラブルシューティング」セクションを参照してください。

(省略可能): PowerShell でプロジェクト ディレクトリを開き、Arm64 アーキテクチャ用にアプリ バイナリがビルドされていることを確認します (Visual Studio ソリューション エクスプローラーでアプリ プロジェクトを右クリックし、ターミナルで開くを選択します)。 プロジェクトの新しい bin\ARM64\Release ディレクトリが選択されるようにディレクトリを変更します。 コマンド dumpbin .\<appname>.exe を入力します (<appname> をアプリの名前に置き換えます)。 次に、コマンド「 dumpbin /headers .\<appname>.exe」と入力します。 ターミナルの出力結果を上にスクロールし、 FILE HEADER VALUES セクションを見つけて、最初の行が AA64 machine (ARM64)されていることを確認します。

Microsoft Store で更新されたアプリを発行する

上記の構成手順に従ってアプリの Arm64 バージョンをビルドしたら、 Partner Center ダッシュボードにアクセスし 新しくビルドされた ARM64 バイナリを申請に追加することで、Microsoft Store の既存のアプリ パッケージを更新できます。 (以前の ARM32 バイナリも削除するオプションです)。

(必要に応じて) 前の Arm32 バイナリを削除します。 オプションの詳細については、「 Microsoft Store でアプリを公開するを参照してください。

トラブルシューティング

Arm32 アプリを Arm64 に移植するときに問題が発生した場合は、いくつかの一般的な解決策を次に示します。

ARM64 用にコンパイルされていない依存関係が正常なビルドを妨げている

内部、サード パーティ、オープンソース ライブラリなどの依存関係が原因でビルドできない場合は、ARM64 アーキテクチャをサポートするように依存関係を更新する方法を見つけるか、削除する必要があります。

  • 内部の依存関係の場合は、ARM64 サポート用の依存関係をリビルドすることをお勧めします。

  • サード パーティの依存関係の場合は、ARM64 サポートを使用してリビルドするようメンテナンス担当者に要求することをお勧めします。

  • オープンソース依存関係の場合は、最初に vcpkg を確認して、更新可能な ARM64 サポートを含む依存関係の新しいバージョンが存在するかどうかを確認することをお勧めします。 更新プログラムが存在しない場合は、ARM64 サポートをパッケージにご自身で追加することを検討してください。 多くのオープン ソースのメンテナンス担当者は、この作業に感謝することでしょう。

  • 最後の選択肢は、アプリ プロジェクトの依存関係を削除または置換することです。

サポートが必要な場合 App Assure サービスを活用する

Windows アプリまたはドライバーを Arm64 に移植する方法については App Assure の互換性に関するヘルプを参照してください。 App Assure に登録して接続するには、 aka.ms/AppAssureRequest にアクセスするか、 achelp@microsoft.com に電子メールを送信して、Windows on Arm 互換性サポートの要求を送信します。