Windows IoT Enterprise 用アプリを開発する

このページには、Windows IoT Enterprise デバイス用アプリケーションの開発を始めるのに役立つ Windows アプリケーション開発に関するリソースがまとめられています。

Windows IoT Enterprise デバイス用アプリケーションの開発は、Windows クライアント デバイス用の開発とよく似ています。 Windows クライアント用にビルドされた同じアプリケーションは、変更を加えることなく Windows IoT Enterprise 上で実行できます。 Windows IoT Enterprise 用と Windows デスクトップ用アプリケーションの開発の違いは、アプリケーションを展開するハードウェアと、デバイスに適用される Windows IoT のカスタマイズまたはロックダウン ポリシーに関する追加の考慮事項です。

環境を設定する

開発ツールをインストールする

Windows IoT 用アプリケーションを開発するには、Visual Studio、Windows SDK、Windows アプリ SDK が必要です。

トピック リソース 説明
Visual Studio Visual Studio 多くの Windows 開発者にとって推奨される開発ツールである Visual Studio では、Windows やその他の多くのプラットフォーム用のプロジェクトを作成できます。 これは、アプリの作成、デバッグ、デプロイに役立つ強力な IDE です。
Windows SDK Windows SDK Windows SDK は、UWP アプリや Win32/デスクトップアプリをビルドするための開発プラットフォームです。 設計の中心になっている Windows API は、特定のバージョンの OS と連動しています。
Windows App SDK Windows App SDK Windows アプリ SDK は Windows SDK を補完するもので、さまざまな Windows バージョン (Windows 10 1809 まで) にインストールできるモダン デスクトップ アプリをビルドすることができます。

開発を始める

Windows アプリ開発

Windows デバイス用アプリの作成方法を詳しく説明します。また、サンプル アプリケーション コードを見ていきます。

トピック リソース 説明
Windows 言語とプラットフォームのオプション Windows 開発のオプション Windows には、プログラミング言語からアプリケーション フレームワークに至るまで、アプリをビルドするための幅広いオプションが用意されています。 この記事では、アプリのビルドを開始するために必要な情報を説明します。
アプリ フレームワークの比較 アプリ開発フレームワーク どのアプリ開発フレームワークがアプリに最適かを評価します。
Windows アプリのパッケージ化と展開のオプション Windows アプリ: パッケージ化、デプロイ、プロセス Windows アプリケーションのパッケージ化、配布、展開方法と、こうしたさまざまなオプションがアプリの実行時プロセスに与える影響について説明します。
サンプル コード Windows 開発用のサンプル アプリケーション このトピックでは、特定のタスク、機能、および API の使用パターンを示す Windows アプリケーションのサンプル コードをコンパイルします。 これらのサンプルは、Windows アプリ SDK/WinUI 3、UWP/WinUI 2、.NET MAUI などの機能を示しています。

Windows IoT アプリの開発に関する考慮事項

Windows IoT デバイスで一般に使われる Windows アプリ開発パターンと機能について説明します。

トピック リソース 説明
埋め込みモード 埋め込みモード UWP アプリケーションをバックグラウンドで実行し、lowLevelDevices または systemManagement UWP アプリケーション機能を使用できるようにします
バックグラウンド アプリケーション (UWP) バックグラウンド UWP タスクとアプリケーション バックグラウンド アプリケーションとは、UI はありませんが、コードを実行できる特殊な種類の UWP アプリケーションです。 このようなアプリは、Windows IoT Core デバイスやディスプレイのないデバイスでよく使われます。 バックグラウンド アプリケーションを実行するには、組み込みモードを有効にする必要があります。
Windows サービス (.NET) Windows サービス Windows サービスは、UI がないバックグラウンド プロセスであり、特定のタスクや機能を実行するように設計されています。 Windows サービスは、一般に Windows クライアント デバイス上で使われますが、Windows IoT デバイス上で使われることもあります。
UWP アプリケーションの展開 UWP アプリケーションの展開とデバッグ UWP アプリケーションのさまざまな展開およびデバッグ方法について説明します。 IoT デバイスの最も一般的なパラダイムはリモート マシンにデプロイすることです。この場合、IoT デバイス上で追加の設定手順が必要になります
UWP アプリケーションのデバッグ リモート マシン上での UWP アプリケーションのデバッグ Windows IoT デバイス上で実行されているアプリケーションを開発マシンからデバッグする方法について説明します。

ARM64 デバイス用アプリケーションの開発

ネイティブとエミュレート ARM64 アプリケーション

ネイティブ ARM64 アプリケーションとは、Arm64 用にネイティブにビルドされたアプリケーションを指します。 エミュレート ARM64 アプリケーションとは、X86 または X64 用にビルドされたアプリケーションを指しますが、Windows の組み込みエミュレーション テクノロジを使うことで、アプリケーションを変更せずに ARM64 デバイス上で実行できます。

ネイティブ ARM64 アプリケーションには、エミュレート ARM64 アプリケーションと比較して、次のようないくつかの利点があります。

  • パフォーマンスの向上
  • 低消費電力
  • 優れた互換性

ARM64 アプリケーションをネイティブに実行するか、ARM64 デバイス上でエミュレートして実行するかは、実際のデバイス シナリオに何が適しているかによって判断します。 ネイティブ ARM64 アプリケーションの恩恵を受けられるように、アプリケーションを ARM64 用にネイティブにビルドすることをお勧めします。 ただし、Windows に組み込まれている ARM64 エミュレーション テクノロジを使ってアプリケーションを実行しても問題ありません。

ARM64 ネイティブ サポートを追加する方法

既存または新しいアプリケーションに ARM64 ネイティブ サポートを追加するには、Windows アプリケーションに ARM64 サポートを追加する方法に関するガイドに従ってください

アプリ エミュレーションをサポートする Windows IoT Enterprise のバージョン

Windows IoT Enterprise は、この表のように ARM64 デバイス上のアプリ エミュレーションをサポートしています。

OS バージョン ARM64 デバイス上のエミュレーションのサポート
ウィンドウズ10 X86
ウィンドウズ11 X86、X64

ARM64 エミュレーション テクノロジを使ってアプリを実行する方法

Windows の組み込みエミュレーション テクノロジを使って、ARM64 デバイス上で X86 または X64 アプリケーションを実行するには、単に X86 または X64 アプリケーションを ARM64 デバイスに展開し、通常どおり実行します。

Arm64 のための .NET Framework サポート

.NET Framework 4.8.1 は、Windows 11 で ARM64 のためのネイティブ サポートを追加しました。これにより、開発者は ARM64 用にアプリケーションをネイティブにビルドし、ARM64 エミュレーションを使用せずに ARM64 デバイス上で実行できます。 これは、.NET Framework ランタイム 4.8.1 のネイティブ Arm64 サポートを通じて Windows 11 デバイスでサポートされます。

注意

.NET Framework 4.8.1 ランタイムは、Windows 10 デバイスのネイティブ Arm64 アプリケーションをサポートしていません。

Arm64 Windows 11 IoT Enterprise デバイスでネイティブ Arm64 .NET Framework 4.8.1 アプリケーションを実行するには、.NET Framework 4.8.1 ランタイムがデバイスにインストールされているか、アプリケーションと共にパッケージ化されていることを確認します。

その他のアプリ開発リソース

テストとデバッグ

Visual Studio を使ってアプリケーションをデバッグし、リリース前にテストを実行します。 必ず目次ペインの上部にあるドロップダウンから Visual Studio の正しいバージョンを選んでください。

トピック リソース 説明
Visual Studio を使ってアプリをデバッグする Visual Studio を使ってアプリをデバッグする Visual Studio デバッガーを使ってアプリのリリースを準備します。
Visual Studio でのテストについて確認する Visual Studio のテスト ツール Visual Studio で使用できるテスト オプションを確認します
単体テスト Visual Studio での単体テスト Visual Studio で単体テストを始める方法
Live Unit Testing ライブユニットテスト Live Unit Testing では、コードの変更に合わせて、自動的にリアルタイムで単体テストが実行されます。
リモート テスト Visual Studio でのリモート テスト 開発者は、リモート テストを使用して、Visual Studio 2022 をリモート環境に接続し、テストの実行やデバッグを行うことができます。

アプリケーションの展開

アプリを発行して共有する方法。 必ず目次ペインの上部にあるドロップダウンから Visual Studio の正しいバージョンを選び、記事タイトルの右上で正しい言語を選びます。

トピック リソース 説明
アプリの展開の概要 Visual Studio を使ってアプリを展開する Visual Studio を使ってアプリケーションを展開します。
ローカル フォルダーに配置する Visual Studio を使ってローカル フォルダーに展開する 通常、ローカル フォルダーへの配置は、テスト目的で、または最終的な配置に別のツールを使用する段階的な配置を開始する目的で使用されます。
Azure に発行する Visual Studio を使って Azure に発行する Visual Studio を使ってアプリケーションを Azure に発行します。
Web またはネットワーク共有に発行する Visual Studio を使用して Web に発行する アプリを Web に発行するか、Visual Studio のネットワーク共有に展開します。
インストーラー パッケージを作成する インストーラー パッケージを作成する Visual Studio を使ってアプリの Windows デスクトップ インストーラー パッケージを作成します
Microsoft Store への発行 Microsoft Store に発行する まず Microsoft Store に発行します。
Windows アプリとして展開する Windows アプリとして展開する (アプリ インストーラーを作成する) サービス更新プログラムを受け取ることができる Windows アプリとしてプロジェクトをパッケージ化するために、アプリ インストーラーを作成できます。
デバイスに展開する (UWP) デバイスにリモートで展開する デバイスにテスト用の UWP を展開します。
アプリを OS イメージにプレインストールする DISM を使ったアプリのプレインストール このトピックでは、アプリをプレインストールして Windows イメージの一部として含まれるようにする方法について説明しています。
WinGet を使ってアプリをインストールする WinGet を使用して Windows IoT Enterprise にアプリをインストールする WinGet コマンド ライン ツールを使用すると、ユーザーは、Windows 10 および Windows 11 デバイス上のアプリケーションを検出、インストール、アップグレード、削除、および構成できます。

その他の便利な Windows 開発ツール

トピック リソース 説明
Dev Home をインストールする Dev Home Dev Home は Windows 11 で導入され、Windows 用アプリを開発するために必要なツールにすばやくアクセスできるダッシュボードです。 また、トレーニングとコード サンプルへのリンクも提供します。
開発用ドライブ Dev ドライブ 一般的な開発タスクを高速化するために、開発者ドライブという、プロジェクトの格納に使われる特別にフォーマットされたドライブを作成できます。
Visual Studio Code Visual Studio Code 高度に拡張可能なエディターである Visual Studio Code は、考えられるほぼすべての種類の開発をサポートするようにカスタマイズできます。 Windows やその他のプラットフォーム用のアプリを作成するための最適な選択肢です。
Windows ターミナル Windows ターミナル Windows ターミナルは、コマンド プロンプト、PowerShell、bash (Linux 用 Windows サブシステム (WSL) 経由) などの使い慣れたコマンド ライン シェル用の最新のホスト アプリケーションです。 最新のタブ付きインターフェイスを提供し、テーマと拡張機能をサポートします。
Linux 用 Windows サブシステム Linux 用 Windows サブシステム WSL を使うと、Windows 上で Linux ディストリビューションを実行できます。また、オープン ソース ツールを使って Windows 用アプリを開発するにはお勧めの方法です。