次の方法で共有


パッケージ化の概要

パッケージ化では、アプリを Windows にインストール、更新、統合する方法を定義します。 WinUI アプリは既定でパッケージ化されますが、従来の Win32 アプリケーションなどの多くのデスクトップ アプリはパッケージ化されていない状態で実行されます。 パッケージ アプリは、クリーン インストール モデル、自動更新、およびバックグラウンド タスク、通知、コンテキスト メニュー拡張機能、その他の機能拡張ポイントなど、パッケージ ID を必要とする Windows 機能へのアクセスを利用できます。 パッケージ化されていないアプリは引き続き多くの Windows App SDK 機能にアクセスできますが、特定の機能を有効にするために追加のセットアップが必要になる場合があります。

アプリのパッケージ化が重要な理由

パッケージ化によって、アプリのインストール、更新、識別、および Windows との統合方法が決まります。 パッケージアプリとパッケージ化されていないアプリのどちらを選択するかは、使用できる機能、依存するデプロイ モデル、顧客が得る全体的なエクスペリエンスに影響します。 この概要の目的は、アプリのアーキテクチャと要件に最も適したモデルを選択できるように、トレードオフをすばやく理解できるようにすることです。

パッケージ化されたアプリとパッケージ化されていないアプリ

パッケージ アプリ

パッケージ アプリは MSIX を使用し、 パッケージ ID を持ちます。これは、バックグラウンド タスク、通知、カスタム コンテキスト メニュー拡張機能、共有ターゲットなど、多くの Windows 拡張機能ポイントに必要です。 パッケージ ID を使用すると、Windows はプラットフォーム API の呼び出し元を確実に識別できるため、これらの機能はそれに依存しています。 詳細については、「 パッケージ ID を必要とする機能」を参照してください。

  • パッケージ 化されたアプリは、通常、ファイル システムとレジストリの仮想化を備えた軽量のアプリ コンテナーで実行されます (レガシ アプリと MSIX AppContainer アプリの AppContainer を参照)。
  • 必要に応じて、アプリ コンテナーで実行 しないように アプリを構成することもできます。
  • MSIX はパッケージ化とインストールの両方に使用されます ( MSIX とはを参照してください)。

外部の場所に同梱

一部の既存のデスクトップ アプリでは、すべてのコンテンツが MSIX パッケージ内に存在する準備ができていない場合があります。 外部の場所でパッケージ化 すると、これらのアプリ パッケージ ID が提供され、ほとんどのコンテンツはパッケージの外部に残ります。

  • このオプションには、インストーラーが必要です。パッケージ化とパッケージ化されていない間のハイブリッド モデルと考えてください。
  • 外部の場所でパッケージ化してパッケージ ID を付与する を参照してください。

パッケージ化されていないアプリ

パッケージ化されていないアプリは MSIX を使用せず、 パッケージ ID も持たないので、必要 な機能にアクセスできません。

  • これらは、API サーフェス、ファイル システム アクセス、レジストリ アクセス、昇格、およびプロセス モデルの点で完全に制限されません。
  • インストールと更新は、 .exe.msi、カスタム インストーラー、ClickOnce、または xcopy 配置に依存します。
  • パッケージ ID が必要な機能」を参照してください。

概要の比較

パッケージ化(オプションのアプリコンテナー) 外部の場所でパッケージ化/ パッケージ化されていない
主な利点 最新のインストール/アンインストール、自動/増分更新、残った成果物のないクリーンな削除、Microsoft Store エクスペリエンスの最適化、パッケージ ID を必要とする機能へのアクセス。 プロセス モデル、昇格、IPC、レジストリ、ファイル システム アクセスを完全に制御します。 外部ロケーション パッケージを使用すると、MSIX を完全に採用することなくパッケージ ID を取得できます。
主な制限事項 一部のシステム レベルのシナリオはサポートされていません (NT サービスなど)。 IPCオプションを制限でき、ストア・パブリケーションでは昇格されたアクセスが制限され、多くのケースで仮想化が適用されます (「柔軟な仮想化」を参照)。 エンタープライズ ポリシーでは、ストア駆動型の更新プログラムが無効になる場合があります。 アンインストール後の古いファイルまたは構成のリスクが高くなります。 インストール/更新は、 .exe.msi、またはカスタム メカニズムを使用して手動で処理する必要があります。 パッケージ化されていないアプリには、パッケージ ID を必要とする機能がありません。

Important

ほとんどのアプリでは、MSIX を使用し、アプリ コンテナーで実行すると、最もシームレスで安全で最新のインストールと更新のエクスペリエンスが提供されます。

インストール場所、作業ディレクトリ、仮想化、ランタイム動作の詳細については、次を参照してください。
パッケージ化されたデスクトップ アプリが Windows でどのように実行されるかについて説明します

MSIX を始めよう

Win32 デスクトップ アプリ ("クラシック デスクトップ アプリ" とも呼ばれます) または .NET アプリ (Windows Presentation Foundation (WPF) や Windows フォーム (WinForms) を含む) を作成する場合は、MSIX を使用してアプリのパッケージ化と展開を行うことができます。

その他のインストール テクノロジ

他のインストール テクノロジを使用して、これらの種類のアプリをパッケージ化し、展開することもできます。