Windows アプリを配布する方法は、コード署名コスト、更新のしくみ、エンタープライズ管理容易性、および顧客がアプリを検出してインストールする簡単な方法に影響します。 この記事では、正しい選択を行うために役立つ主なパスを比較します。
ヒント
ほとんどの開発者にとって、Microsoft Storeが推奨されるパスです。 MSIX の送信では、幅広い発見可能性、信頼できるインストール体験、およびインフラ管理不要 (パッケージは Microsoft により再署名およびホストされます) を提供します。 Win32 MSI/EXE インストーラーの申請も受け付けられます。発行元はバージョン管理された HTTPS インストーラー URL をホストする必要があります。 MSI/EXE アプリの申請を参照してください。 MSIX 申請では、無料のコード署名と組み込みの更新プログラムの配信が提供されます。
注
アプリが Web テクノロジ (HTML、JavaScript、CSS) に基づいて構築されている場合、Progressive Web App (PWA) は、Microsoft Storeへの最速のパスです。ネイティブ パッケージ 化ツールは必要ありません。
配布経路一覧
| Path | 最適な用途 | コード署名コスト | 自動更新 | エンタープライズ MDM | ストア経由で配布 |
|---|---|---|---|---|---|
| Microsoft Store (MSIX) | コンシューマー アプリとビジネス アプリ、幅広い範囲 | ✅ 無料 (ストアでパッケージに再署名) | ✅ 組み込み | ✅ Intune を使用して ポータル サイト 経由で | ✅ はい |
| Microsoft Store (MSI/EXE インストーラー) | 独自のインストーラーを使用する既存の Win32 アプリ | 💲 Publisher は、Microsoft Trusted Root Program にチェーンされている証明書を使用してインストーラーとすべての PE ファイルに署名する必要があります。 | ❌ 手動 (アプリまたはインストーラーが更新プログラムを処理) | ✅ Intune を使用して ポータル サイト 経由で | ✅ はい |
| PWA (プログレッシブ Web アプリ) | Web アプリと Web ベースのエクスペリエンス | ✅ 無料 (ストアでサインイン) | ✅ ストアまたはブラウザー経由 | ✅ Intune を使用して ポータル サイト 経由で | ✅ はい |
| MSIX サイドロード (エンタープライズ) | Intune/ConfigMgr を使用した内部 LOB アプリ | 💲 Azure Artifact Signing (旧称 Trusted Signing) (~$10/mo) または自己署名 + Intune 証明書プロファイル | ✅ アプリ インストーラー ファイルまたは MDM 経由 | ✅ ネイティブ | ❌ いいえ |
| MSIX ダイレクト ダウンロード (ISV) | 独自のサイトから販売された商用アプリ | 💲 CA 信頼証明書が必要です (Azure 成果物署名 (以前の信頼された署名)推奨) |
✅
.appinstaller ファイルを通じて |
⚠️ 制限あり | ❌ いいえ |
| 外部の場所を使用したパッケージ化 | Windows機能を必要とする独自のインストーラーを持つ既存のアプリ | 💲 MSIX ダイレクト ダウンロードと同じ | ✅ 既存のメカニズム | ⚠️ 制限あり | ⚠️ MSI/EXE ストアの申請経由 (発行元の署名が必要) |
| パッケージ化されていない WinUI 3 | ニッチ: MSIX 機能のない企業向け、またはインストールの最大限のシンプルさを求める企業向け | 💲 SmartScreen に推奨される証明書 | ❌ 手動のみ | ⚠️ 制限付き (Intune/ConfigMgr Win32 展開経由) | ⚠️ MSI/EXE ストアの申請経由 (発行元の署名が必要) |
Microsoft Store (推奨)
Microsoft Storeへの発行は、Windows アプリの最も完全な配布ソリューションです。 次の 2 つの申請パスを使用できます。
- MSIX 申請 - 新しいアプリと WinUI 3 アプリに推奨されます。 パッケージMicrosoft再署名します。証明書の購入は必要ありません。 ストア管理の更新プログラム、段階的なロールアウト、差分ダウンロードが含まれます。
- MSI/EXE インストーラーの提出 — 独自のインストーラーを使用する既存の Win32 アプリ用。 Publisherは、バージョン管理された HTTPS URL を、publisher独自の CDN でホストされているインストーラーに送信します。ストアは、ストアのインストール フローの一部として、その URL からインストーラーをダウンロードして実行します。 Publisherは、Microsoft Trusted Root Program の CA にチェーンされている証明書を使用してインストーラーに署名する必要があります。 更新はアプリの責任です。
取得するもの (両方のパス):
- ストアの検索とキュレーションされたコレクションを使用した検出
- 信頼されたインストール UX
- 収益処理、払い戻し、分析が含まれています
- ポータル サイトを使用した Intune によるエンタープライズ展開
要件:
- MSIX は推奨されるパッケージ形式です。WinUI 3 アプリは既定でパッケージ化されています。 既存の MSI または EXE インストーラーを使用する Win32 アプリは、
MSI/EXE インストーラー パス を介して送信することもできます (注: MSI/EXE の申請には、Microsoft信頼されたルート プログラム — 自己署名は受け入れません。ストア管理の更新プログラムは、このパスでは使用できません) - アプリはストア認定要件に合格する必要があります: MSIX 要件 | MSI/EXE 要件
- デベロッパー アカウントが必要 (パートナー センター)
これを選択するタイミング:
- アプリは、コンシューマーまたはビジネス ユーザーを広く対象とします
- 可能な限りシンプルなディストリビューション インフラストラクチャが必要です
- 新しい WinUI 3 アプリをビルドしています (既にパッケージ化されているので送信するだけです)。
→
プログレッシブ Web アプリ (PWA)
アプリが Web サイトであるか、主に Web テクノロジに基づいて構築されている場合、プログレッシブ Web アプリは、ネイティブパッケージツールやコード署名購入を必要とせず、Microsoft Storeへの最速のパスです。
PWA は、ブラウザーがスタンドアロン アプリとしてインストールできる Web アプリです。 オフラインで実行したり、プッシュ通知を送信したり、[スタート] メニューやタスク バーに表示したり、Microsoft Store経由で配布したりできます。 PWABuilder を使用して、ストア申請用にサイトを数分でパッケージ化します。
こちらはあなたが得るものです。
- 無料コード署名を使用したストア配布 (ストアがパッケージに署名)
- 最新のブラウザーを使用して任意のデバイスで動作する
- 手動の MSIX、WiX、インストーラーの作成は必要ありません。 PWABuilder などのツールによってストア申請パッケージが生成されます
- 組み込みの更新プログラムの配信 - ユーザーは常に最新の Web コンテンツを取得します (ホストされているコンテンツの更新プログラムはストアに再提出されません)
要件:
- アプリは HTTPS 経由で提供する必要があります
- Web アプリ マニフェストとサービス ワーカー
- アプリがストア認定要件に合格する必要がある
Limitations:
- ディープ ネイティブ Windows API (ファイル システム アクセス、Web API を超えるハードウェア統合) は、ブリッジングを追加しないと使用できません
- アプリ ロジックは Web コンテキストで実行されます。ネイティブ .NET、C++、または WinRT API を必要とするアプリには適していません
これを選択するタイミング:
- アプリは、インストール可能にする Web アプリ、SaaS ツール、またはコンテンツ サイトです
- 最小限のツールでストアへの最速のパスが必要
- 最新の Web API によって機能要件が満たされている
→
→ PWABuilder を使用して PWA をMicrosoft Storeに発行する
MSIX サイドローディング — 企業向け業務用アプリ配布
Microsoft IntuneまたはConfiguration Managerを介してマネージド デバイスに展開される内部基幹業務アプリの場合、MSIX サイドローディングが推奨パスです。
こちらはあなたが得るものです。
- MDM ポリシーを使用したサイレント インストールと更新
- エンタープライズ デバイス管理 (Intune、ConfigMgr) との統合
- 完全なパッケージ ID とWindows機能 (通知、バックグラウンド タスクなど) へのアクセス
コード署名:
- Azure アーティファクト署名 (旧称: 信頼された署名) を CAが信頼する証明書のために使用するか (約 $10/月)、または
- Intune の信頼された証明書プロファイルを使用してエンドポイントに展開された自己署名証明書を使用する
要件:
- ターゲット デバイスは、(MDM またはグループ ポリシーを使用して) 署名証明書を信頼する必要があります
- ターゲット デバイスでサイドローディングを許可する必要があります (Windows 10 バージョン 2004 以降およびすべてのWindows 11 デバイスで既定で有効)
これを選択するタイミング:
- 社内アプリを会社が管理するデバイスに配布する
- Intune またはグループ ポリシーを使用して証明書の信頼を構成できる IT チームがいる
Intune を使用して MSIX アプリを展開する→
→
MSIX ダイレクト ダウンロード — ISV および商用アプリ
(ストア経由ではなく) Web サイトから直接販売される商用アプリの場合は、自動更新サポート用の .appinstaller ファイルを使用して MSIX パッケージを配布できます。
こちらはあなたが得るものです。
- アプリ インストーラーを使用した使い慣れたインストール エクスペリエンス
-
.appinstallerファイルを介した自動更新のサポート (サーバーでホスト) - 完全なパッケージ ID とWindows機能へのアクセス
- 独自の配布チャネルと価格を制御する
コード署名:
- CA で信頼されたコード署名証明書が必要です。ユーザーは証明書を手動で信頼しないと、署名されていない MSIX パッケージまたは自己署名 MSIX パッケージをインストールできません
- Azure成果物署名 (以前の信頼された署名) (~$10/月) がMicrosoft推奨されるオプションです。ハードウェア トークンは不要で、CI/CD パイプラインと統合されます
- 従来の OV 証明書も受け入れられます (通常は CA から 150 ~ 300 ドル/年)
Smartscreen: 新しい証明書は、ダウンロード ボリュームに基づいて時間の経過と同時に SmartScreen の評判を蓄積します。 新しいリリースに SmartScreen プロンプトが表示される場合があります。 Windows アプリ開発者向けの SmartScreen の評判を参照してください。
Important
ms-appinstaller: URI プロトコル (ワンクリック ブラウザーインストール) は、2023 年 12 月以降、既定で無効になっています。
.appinstaller ファイルに直接リンクしてダウンロードするか、より広範な範囲でストアに公開することを検討してください。
アプリ配布機能の現在Windows状態を参照してください。
これを選択するタイミング:
- お客様は、お客様の Web サイトから直接ソフトウェアを販売する ISV です
- ストアでサポートされていないインストーラー UX、価格、またはライセンスを制御する必要がある
- 顧客は、ストアの外部でソフトウェアを調達する企業です
→ アプリ インストーラー ファイルの概要
アプリの自動更新と修復を→する
外部の場所を使用したパッケージ化 (スパース パッケージ)
独自のインストーラー (WiX、NSIS、InstallShield) を持つ既存のアプリがあり、インストーラーを MSIX に置き換えずにパッケージ ID を必要とするWindows機能を追加する場合は、パッケージを外部の場所で使用します。
こちらはあなたが得るものです。
- インストーラーまたはバイナリの場所を変更せずにパッケージ ID を作成する
- Windows機能へのアクセス: 通知、バックグラウンド タスク、ファイルの種類の関連付け、プロトコル ハンドラー
- 既存のインストールと更新のメカニズムがそのまま維持されている
得られないもの:
- 直接 MSIX ストアの申請 (スパース パッケージ自体は Store で送信されませんが、基になるインストーラーは MSI/EXE ストア インストーラー パスを使用して送信できます)
- 完全な MSIX のクリーン インストール/アンインストール モデル
これを選択するタイミング:
- インストーラーが確立された既存の Win32/WPF/WinForms アプリがある
- パッケージ ID を必要とする特定のWindows API 機能が必要です
- MSIX への完全な移行は、現時点では実現できません
→ 外部の場所でパッケージ化してパッケージ ID を付与する
パッケージ化されていない WinUI 3
パッケージ化されていない配布では、MSIX が画像から完全に削除されます。アプリはパッケージ マニフェストなしでフォルダーから直接実行されます。 これは、特定のシナリオに適したニッチなオプションです。
こちらはあなたが得るものです。
- よりシンプルなビルド出力 (ファイルのフォルダー、MSIX ツールなし)
- ターゲット マシンに MSIX インフラストラクチャは必要ありません
- MSIX サイドローディングが有効になっていないマシンで動作します
Limitations:
- 単一ファイルではない EXE — Windows アプリ SDK ランタイムは、実行可能ファイルと一緒に別個のファイルとして配布する必要があります。
- Runtime deployment — Windows アプリ SDK ランタイム インストーラーをバンドルするか、自己完結型のデプロイを使用する必要があります (出力が大きい)
- パッケージ ID なし - 自動更新なし、バックグラウンド タスクなし、マニフェストによるファイルの種類の関連付けなし
- MSIX/package-identity Store 申請なし - このモデルにはパッケージ ID がなく、MSIX パッケージとしてストアに送信できません。 従来のインストーラー (MSI/EXE) は個別に送信できますが、この配布パスの外側にあります。
- CA で信頼された証明書で署名されていない場合の SmartScreen の警告
これを選択するタイミング:
- ターゲット環境で MSIX を使用できません (一般的ではありません。ほとんどのマネージド エンタープライズ環境では MSIX がサポートされています)
- MSIX のオーバーヘッドが正当化されない内部ツールを構築している
ほとんどの WinUI 3 アプリでは、MSIX (ストアまたは直接ダウンロード経由) の方が適切なパスです。 上記の制限は、パッケージ化されていないディストリビューションに投資した後に、それらを発見した開発者を驚かせることがよくあります。
→ パッケージ化されていない WinUI 3 アプリを配布 する - ランタイムデプロイオプションを含むステップバイステップガイド
多くのWindows アプリは、ClickOnce、MSI、WiX、Inno セットアップ、または同様のテクノロジを使用して配布されます。 これらは、特に MSIX を使用できないアプリやストア配布を必要としないアプリに対して、確立され、サポートされているオプションです。 次の表は、一般的なオプションとそのトレードオフをまとめたものです。
| メソッド | 自動更新 | コード署名が必要 | 対象となるストア | 最適な用途 |
|---|---|---|---|---|
| ストア経由の MSIX | ✅ 組み込み | ✅ 無料 (ストアの看板) | ✅ はい | ほとんどのアプリ — 推奨される開始点 |
| MSIX + .appinstaller | ✅ 組み込み | 💲 CA 信頼証明書 | ❌ いいえ | ウェブサイトから直接配布するISV |
| ClickOnce | ✅ 組み込み | 💲 推奨される証明書 | ❌ いいえ | WPF/WinForms アプリ。WinUI 3 ではサポートされていません |
| MSI/WiX/Inno セットアップ | ⚠️ 手動またはカスタム | 💲 推奨される証明書 | ⚠️ MSI/EXE ストア申請経由 (下記参照) | 複雑なインストール要件または既存のインストーラーを含むアプリ |
| 自己完結型 EXE (xcopy/zip) | ❌ なし | 💲 推奨される証明書 | ❌ いいえ | 単純なユーティリティ。開発者/パワーユーザーを対象とした対象者 |
| winget マニフェスト | ✅ winget 経由 | 💲 推奨される証明書 | ❌ いいえ | 上記のいずれかを使用して検出可能性を追加します。 winget install |
ClickOnce
ClickOnce は、Visual Studioに組み込まれた.NET配置テクノロジです。 Web サーバーまたはファイル共有でマニフェストをホストします。ユーザーはマニフェスト URL からインストールし、ClickOnce は起動時に更新チェックを処理します。 これは、既知のユーザーベースに配布される WPF および WinForms アプリに適しています。
ClickOnce は、WinUI 3 アプリではサポートされていません。
.appinstaller を使用して WinUI 3 を直接配布するには MSIX を使用します。
MSI、WiX、Inno セットアップ、および NSIS
従来の EXE および MSI インストーラーは、複雑なインストール要件 (ドライバーのインストール、システム サービス、レジストリ構成) を持つWindows アプリで引き続き一般的です。 WiX ツールセット、Inno セットアップ、NSIS などのツールは、コミュニティで保守され、広く使用されています。 更新プログラムのサポートには、独自の実装が必要です。
これらの形式は MSIX パッケージとしてストアの対象ではありませんが、MSI/EXE インストーラー パス (Microsoft 信頼されたルート プログラム の CA への証明書チェーンとサイレント インストール対応のインストーラーを使用してストアに送信できます)。 特定の Windows 機能に対してパッケージ ID が必要な場合、パッケージ化と外部の場所を組み合わせることもできます。
自己完結型 EXE (xcopy 展開)
dotnet publish --self-contained は、ユーザーが.NETをインストールせずに実行できるファイル (または単一ファイル EXE) のフォルダーを生成します。 これは最も単純な配布モデルですが、ユーザーは新しいバージョンを手動でダウンロードする必要があります。 コマンド ライン ツール、開発者ユーティリティ、およびパワー ユーザー アプリに適しています。
winget — 任意の配布パスに検出可能性を追加
パッケージ形式に関係なく、マニフェストを Windows パッケージ マネージャー Community Repository に送信して、winget install <your-app> 経由でアプリをインストールできるようにします。 これにより、既存の配布方法が置き換わるのでなく、開発者や技術対象ユーザーが値を指定するコマンド ライン インストール パスが追加されます。
関連するコンテンツ
Windows developer