Arm 版 Windows
Windows は従来、x86/x64 プロセッサを搭載したマシンで実行されていますが、最近では、Arm プロセッサを搭載したデバイスでも実行されています。
Arm を搭載したデバイスは特に興味深いのは、Arm アーキテクチャのパワーフラガルの性質により、これらのデバイスは優れたパフォーマンスを提供しながら、より長いバッテリ寿命を提供できるためです。 Arm Systems on Chip (SoC) には、多くの場合、強力な CPU、GPU、Wi-Fi & モバイル データ ネットワーク、AI ワークロードを高速化するためのニューラル プロセッサ ユニット (NTU) などの他の主要な機能が含まれています。
Arm で実行される Windows アプリをビルドする
Windows 10を使用すると、既存の変更されていない x86 アプリを Arm デバイスで実行できます。 Windows 11、Arm デバイスで変更されていない x64 Windows アプリを実行する機能が追加されました。 Arm デバイスで x86 & x64 アプリを実行するこの機能により、既存のアプリ & ツールの大部分が新しい Arm 搭載デバイスでも適切に実行されるという確信がエンド ユーザーに与えます。
パフォーマンス、応答性、バッテリー寿命を最大限に高めるために、ユーザーは Arm ネイティブ Windows アプリを必要とします。つまり、開発者は Arm ネイティブ Windows アプリをビルドまたは移植する必要があります。
Arm 開発者用ツール
Microsoft は、Arm ネイティブの Visual Studio 2022、VSCode、VC++ ツールチェーン、クラシック .NET Framework、最新の .NET、Java を含む Arm ネイティブ開発者ツールセットの提供に取り組んでいます。 Microsoft は、複数のサード パーティやオープンソース コミュニティと協力して、一般的なツール、ランタイム、フレームワーク、ライブラリを移植して、Arm 上の Windows をネイティブにターゲットにしています。 開発者が x64 をターゲットとするときと同じくらい簡単に Arm をネイティブにターゲットとするアプリをビルドして移植できるようにする、この包括的なツール、サービス、デバイススイートについては、 ビルド 2022 からのお知らせ を参照してください。
Arm 開発者サービス
今日の多くの開発者も、Virtual Machinesとコンテナーに依存しています。 Microsoft の Azure チームが最近、新しい Arm Virtual Machines サービスのプレビューを発表し、近日中に Azure Kubernetes Services 経由で Arm コンテナーをプレビューする予定です。
また、ほとんどの開発者は、 Azure DevOps や GitHub などのクラウド サービスでホストされることが多い継続的インテグレーション/継続的デプロイ (CI/CD) によるビルドとテストの自動化にも依存しています。 2022 年夏の終わりに、Microsoft は Azure DevOps と GitHub によって共有される CI/CD オートメーション ランナー/エージェントの移植作業を開始します。 クラウドでホストされる Arm CI/CD サービスがいつ利用可能になるかに関する詳細が近日公開予定です。
Arm 開発者デバイス
開発者には、Arm ネイティブ Windows アプリをビルドしてテストするための Arm デバイスが必要です。 いくつかの Arm 搭載デバイスは、Microsoft パートナーから既に利用できます。 ラップトップフォームファクターデバイスでもコンバーチブルタブレットでも、これらのポータブルデバイスは優れたパフォーマンス、バッテリー寿命を提供し、Armネイティブ開発者ツールの増加する配列を実行します。
Windows Dev Kit 2023 (コード名 "Project Volterra") は、アプリとエクスペリエンスに AI を統合しようとしている Windows 開発者、AI 研究者、開発者をサポートするために構築された最新の Arm デバイスです。
Arm64EC - Arm でWindows 11用のアプリを構築する
Arm64EC ("エミュレーション互換") を使用すると、完全に移行されるまで既存の x64 コード ライブラリを利用しながら、可能な限りネイティブ Arm のパフォーマンスを活用するために、新しいアプリを段階的にビルドしたり、既存のアプリ & を移植したりできます。 詳細情報:
Arm での既存の Windows アプリのサポート
Windows on Arm では、ネイティブ Arm アプリだけでなく、変更されていない x86 & x64 アプリも多数実行されますが、最高のパフォーマンスとバッテリー寿命を実現するには、可能な限り Arm ネイティブにアプリを構築する必要があります。 Windows アプリは、ネイティブ C/C++ Win32 アプリ、クラシック .NET Framework WinForms/WPF アプリ、最新の .NET または MAUI アプリ、Java、Python、ノードなどを使用して構築されたアプリなど、さまざまなツールとテクノロジを使用して構築できます。
Arm 開発用のツールを見つける
Windows には、Arm での Arm のアプリ開発をサポートするためのさまざまなツールとフレームワークが用意されています。
- 新しい Arm ネイティブ Visual Studio には、Visual C++、.NET & .NET Framework、Java が含まれており、開発者は Arm ベースのデバイスで Arm アプリをネイティブにビルドおよびデバッグできます。 詳細については、 ブログのお知らせを参照してください。
- Visual Studio Code は Arm をネイティブにサポートしており、 Arm デバイスにインストールできます。 VS Code C++ 拡張機能では、C++ IntelliSense も提供され、Arm64 デバイスでネイティブに実行される Windows アプリを開発するためのビルド サポートも提供されます。
- .NET 6 では、ネイティブ Arm の実行と x64 エミュレーションの両方で Arm が既にサポートされています。 Arm64 デバイスでネイティブに実行される .NET アプリを開発するには、新しい Arm ネイティブ Visual Studio 2022 17.4 および .NET 7 Arm64 SDK をインストールすることをお勧めします。 Arm の .NET 7 サポートと Arm64 のパフォーマンス向上の詳細については 、.NET ブログを参照してください。
- .NET 6 Arm64 SDK: 既定では、Arm64 SDK を使用する .NET 6 アプリの場合
dotnet run
は、Arm64 として実行されます。 このdotnet-runtimeinfo
ツールを使用して、.NET が実行されている環境を検出できます。 詳細については、 Arm64 のサポートに関する .NET 6 ブログのお知らせ を参照してください。
注意
Arm64 (AArch64 とも呼ばれます) プロセッサでデスクトップ バージョンの Windows を実行する PC の短縮形として Arm という用語を使用します。 ここでは、32 ビット Arm アーキテクチャの略語として Arm32 という用語を使用します (他のドキュメントでは Arm と呼ばれます)。 Arm を搭載した PC は、優れたアプリケーション互換性を提供し、既存の変更されていない x86 win32 アプリケーションを実行できます。 Arm アプリはエミュレーションなしでネイティブに実行され、x86 および x64 アプリは Arm デバイス上のエミュレーションで実行されます。
Arm デバイスで実行される Windows アプリを開発するための追加のヒント
MSIX を使用して、配布用にアプリをパッケージ化することをお勧めします。 MSIX が Arm と Arm64 をサポートする方法の詳細については、「 アプリ パッケージ アーキテクチャ: Arm と Arm64」を参照してください。
Arm デバイスからデバッグ (F5) を開始するときに、すべての Visual Studio プロジェクトがプロジェクトをローカルで起動するように構成されているわけではありません。 アプリがローカルで実行されている場合でも、リモート デバッグのために Visual Studio の構成が必要になる場合があります。 詳細については、「リモート デバッグ」を参照してください。
Visual Studio で推奨されるパッケージを見つけてインストールするには、 Visual Studio のダウンロード ページにアクセスします。
- Remote Tools for Visual Studio 2022 の場合は、[すべてのダウンロード] セクションの下にスクロールし、[Tools for Visual Studio 2022] ドロップダウン メニューを展開します。 Remote Tools for Visual Studio 2022 が一覧表示されます。 必ず [Arm64] ラジオ ボタンをチェックしてから、[ダウンロード] をクリックします。
- Microsoft Visual C++再頒布可能パッケージの場合は、[すべてのダウンロード] セクションの下にスクロールし、[その他のツールとフレームワーク] ドロップダウン メニューを展開します。 Microsoft Visual C++ Visual Studio 2022 の再頒布可能パッケージが一覧表示されます。 必ず [Arm64] ラジオ ボタンをチェックしてから、[ダウンロード] をクリックします。
- 以前のバージョンの Visual Studio を使用している場合は、ページの下部にある [ 古いダウンロード ] リンクを選択して、お使いのバージョンの Visual Studio に関連付けられているダウンロードを検索します。
ユーザーが Microsoft Store から Arm デバイスにアプリをインストールすると、Windows 11は使用可能なアプリの最適なバージョンを自動的に選択します。 x86、Arm32、Arm64 バージョンのアプリを Microsoft Store に送信すると、オペレーティング システムによって Arm64 バージョンのアプリが自動的にインストールされます。 アプリの x86 バージョンと Arm32 バージョンのみを送信すると、オペレーティング システムによって Arm32 バージョンがインストールされます。 アプリの x86 バージョンのみを送信した場合、オペレーティング システムはそのバージョンをインストールし、エミュレーションで実行します。
アプリ アーキテクチャの選択が与えられたら、32 ビット x86 バージョンを選択して、Arm PC 上の Windows でアプリの 32 ビット バージョンを実行します。 アプリの x64 Win32 バージョンが機能しない場合、ほとんどのアプリでは x86 バージョンを使用できます。
アーキテクチャについて詳しくは、「アプリ パッケージのアーキテクチャ」をご覧ください。
App Assure での Arm64 への移行のサポート
Arm64 ベースのデバイスをサポートするようにアプリケーションをビルドまたは更新する際のヘルプとして、開発者は App Assure (FastTrack の一部) を利用できます。これは、テクニカル サポートを提供することでアプリケーションの問題のブロックを解除するのに役立つアプリケーション互換性プログラムです。 aka.ms/AppAssure にアクセスしてください。
その他のリソース
- サティア・ナデラのビルド2022基調講演「Project Volterra」発表
- Arm での x86 エミュレーションのしくみ
- x86 デスクトップ アプリのトラブルシューティング
- ARM UWP アプリのトラブルシューティング
- プログラム互換性のトラブルシューティング ツール (ARM)
- WDK を使用した Arm64 ドライバーのビルド: Arm64 ドライバーを構築するための手順。
- Arm での x86 アプリのデバッグ |Arm で x86 アプリをデバッグするためのガイダンス。
- ビデオ: Arm64 Win32 C++ アプリのビルド
- 開発者向け Arm のWindows 10 (Microsoft Build 2018 ビデオ プレゼンテーション)
- ブログ: Arm 開発Windows 10サポートの元のお知らせ
- バグを報告する