Skip to content

WindowsアプリをArm64に移植する:完全な道筋

2026年6月5日 更新

ネイティブArm64ビルドは、アプリがバッテリーを節約しながらフルスピードで動作するか、Prismエミュレーションで低速動作するかの分かれ目です。また、エミュレーションではまったく実現できない機能(カーネルドライバー、シェル拡張、ハードウェアとの深い統合)も利用可能になります。ここでは、x64専用からネイティブArm64の出荷までの完全な道筋を紹介します。

ステップ1:まず依存関係を監査する

このステップが移植の成否を分け、ビルド設定に触れる前に行う必要があります。アプリが読み込むすべての静的ライブラリ、NuGetパッケージ、ネイティブDLL、プラグインには、Arm64(またはARM64EC)ビルドが存在しなければなりません。完全な依存関係ツリーを辿ってください。Arm64リリースがなく代替もないx64専用のネイティブ依存関係が1つでもあれば、純粋なArm64移植ではなくARM64ECが必要になるサインです。当カタログで依存関係を検索し、どの製品がすでにネイティブ対応しているかを確認してください。

ステップ2:ARM64ソリューションプラットフォームを追加する

Visual Studio(2022 17.4以降を使用):構成マネージャー → アクティブソリューションプラットフォーム → <新規作成...> → ARM64を選択し、既存のx64プラットフォームから設定をコピーし、「新しいプロジェクトプラットフォームを作成」にチェックを入れます。これでプロジェクトにArm64ターゲットが追加されます。

ステップ3:Arm64ビルドツールをインストールする

Visual Studioインストーラーから、Arm64ビルドツール(MSVC Arm64コンパイラ/ライブラリ)を追加します。ビルドにArmデバイスは不要です — Visual Studioはx64マシンからArm64へのクロスコンパイルを実行します。

ステップ4:ネイティブビルドまたはクロスコンパイル

2つの有効なセットアップがあります。

  • オンデバイス(ネイティブ): Snapdragon Xラップトップで開発 — ローカルデバッグが可能で、テストスイートをターゲット上で実行できます。
  • クロスコンパイル(x64ホスト): より高速で低コストですが、結果をローカルで実行できません — ArmデバイスまたはVMへのリモートデバッグを設定します。

実用的なCIパターンは、x64でのクロスコンパイル+テスト用のネイティブArm64ジョブです。CI/CDガイドを参照してください。

ステップ5:依存関係がブロックになる場合 → ARM64EC

重要な依存関係がx64専用で交換できない場合でも、完全にエミュレーションに頼る必要はありません。ARM64ECを使用すると、ネイティブArm64ECコードとエミュレートされたx64コードが1つのプロセスを共有できます — ホットパスをネイティブに再コンパイルし、頑固なx64依存関係はそのまま動作させます。詳細はARM64ECの詳細解説を参照してください。

ステップ6:検証して出荷する

ビルドが本当にネイティブであることを確認します — タスクマネージャーのアーキテクチャ列にARM64と表示されるはずです(確認方法を参照)。その後公開します:Arm64ビルドがwinget、Microsoft Store、またはGitHub Releasesに公開されると、当カタログのような互換性トラッカーがそれを検出し、エントリをネイティブに切り替えます。ネイティブアプリカタログとネイティブシェアのトレンドを参照して、参加するエコシステムを確認してください。

決定木

  • すべての依存関係にArm64ビルドがある → 純粋なArm64、最良の結果。
  • 1つまたは2つのx64専用依存関係があり、代替がない → ARM64EC、段階的対応。
  • ブロックとなるカーネルドライバの依存関係がある → それはドライバーの移植であり、別の作業となります。

← ガイド一覧