Windowsデスクトップアプリ配布の最新ガイド(2025年版・全面再構成)
「とりあえず配れる」から「ユーザーが安全・確実に受け取れる」へ。2025年の配布手段は EXE/MSI に加え MSIX、ClickOnce(.NET 5+対応)、Microsoft Store(EXE/MSIそのまま掲載も可)、winget / Intune まで選択肢が広がりました。本稿は、実務の観点での選び方→作り方→運用をひとまとめにした“地図”です。
まず結論:最短ルート早見表
- 更新を自動化&クリーンなアンインストール:MSIX(.appinstallerで差分更新/Store配布や企業配布と相性◯)。
- 最小コスト・柔軟なセットアップ:EXE(Inno/NSIS等) or MSI(WiX/Advanced Installer等)。Store掲載も可(EXE/MSIのまま)。
- ユーザーごとの簡便インストール&自動更新:ClickOnce(.NET 5+) ※部分信頼は非サポート。
- 持ち運び・一時利用(自己責任):**ZIP配布(ポータブル)**+署名/ブロック解除の説明を必ず。
- 社内一括配布・自動更新:Intune(Win32 / MSIX)や winget と連携。
比較表(要点)
方式 | 自動更新 | アンインストールの綺麗さ | 権限/UAC | 署名 | 配布経路 |
---|---|---|---|---|---|
EXE | 実装次第 | 普通 | インストーラ次第 | 必須推奨 | 直配布 / Store(EXE/MSI可) / winget |
MSI | 実装次第 | 比較的良い | 管理者が多い | 必須推奨 | 直配布 / Store / winget / Intune |
MSIX | 標準(差分・宣言的) | 非常に良い | ユーザー権限中心 | 必須 | 直配布 / Store / Intune / winget |
ClickOnce | 標準 | 普通 | ユーザー権限 | 署名強推奨 | 直配布のみ |
ZIP | なし | 自己管理 | なし | 実行ファイル署名推奨 | 直配布のみ |
.NET 8 時代の前提知識(超重要)
- Self-contained 発行なら .NET ランタイム不要。
- Framework-dependent は .NET Desktop Runtime 必要。
- ARM64 環境の増加に伴い、x64/ARM64 のどちらを配るかを明記する。
- コード署名(SHA-256 + タイムスタンプ)は全方式で 必須級。SmartScreen の評判対策として EV 署名は初期レピュテーションが有利(ただし現在は提出等が必要になるケースあり)。
各方式の実務ポイント
1) EXE(Inno Setup / NSIS など)
- 利点:柔軟な UI / 条件分岐・前提条件の導入・サービス登録などがしやすい。
- 注意:UAC 権限やレジストリ変更が絡むと管理者実行が要る。署名は必須、未署名は配布事故の元。
- Store:EXE のまま掲載可能(オフライン完全インストーラ・URL固定等の要件)。
- winget:EXE も登録可(コミュニティのマニフェストで配布)。
2) MSI(WiX / Advanced Installer など)
- 利点:企業配布と相性が良く、リペアやアンインストールが安定。
- Store:MSI のまま掲載可(要件は EXE と同等)。
- Intune:Win32 アプリとして取り込み(.intunewin に前処理)。
3) MSIX(モダンパッケージ)— “いまの標準解”
- 特徴:コンテナ化・差分更新・宣言的権限・クリーンなアンインストール。.appinstaller による自動更新が強力。
- 変換:MSIX Packaging Tool で既存 EXE/MSI から変換可(ソースコードなしでも可)。
- 配布:直配布 / Microsoft Store / Intune / winget と相性が良い。
- 留意:ドライバ・一部システム拡張は別設計が必要な場合あり(アプリ境界のため)。
4) ClickOnce(.NET 5 以降対応)
- いまの ClickOnce:.NET Core / .NET 5+ で部分信頼(CAS)は非サポート。通常フル・トラストでユーザー単位インストール&自動更新。
- 向き不向き:個人・小規模展開や最速配布に有効。高度な前提条件や OS 統合が要る場合は MSI / MSIX を検討。
5) ZIP(ポータブル)
- 使いどころ:持ち運び・一時利用・管理者権限が使えない現場。
- 大前提:EXE に署名し、初回起動時の SmartScreen 対応やブロック解除の手順を明記。
6) Microsoft Store(Win32 掲載の最新事情)
- MSIX に加えて、EXE / MSI を“そのまま”掲載可(完全オフライン・URL固定・単一製品のみ等の要件)。2021年以降の変更。
- 補足:Win32 アプリの署名は必須(Trusted Root CA 連鎖)— 未署名は申請不可。
7) winget / Intune(管理配布)
winget(Windows Package Manager)
- 用途:コマンド一発でインストール/更新を自動化。EXE/MSI/MSIX いずれも対象。
- 配布:コミュニティのパッケージマニフェストを GitHub リポジトリへ登録して公開。
Microsoft Intune
- Win32(EXE/MSI):Win32 Content Prep Tool で .intunewin 化し配布。
- MSIX:LOB(Line-of-Business) としてそのまま配布。
- 向くケース:社内 PC 群への一括配布、強制更新、段階展開、設定とセットでの“ゼロタッチ”導入。
実務チェックリスト(全方式共通)
- コード署名:SHA-256 で署名 + タイムスタンプ(signtool sign /fd SHA256 /tr <timestamp-url> …)。EV 署名は SmartScreen 初期評判が有利(近年はマイクロソフトへの提出が必要になるケースあり)。
- アーキテクチャ:x64 / ARM64 の配布方針を決める。
- 発行形態:Self-contained か Framework-dependent かを明記。
- 自動更新:
- MSIX:.appinstaller を配布サイトに配置(差分更新)。
- Store:Store 側に EXE/MSI/ MSIX を登録。
- ClickOnce:公開 URL と発行設定を管理。
- セキュリティと評判:ダウンロード URL の固定、ハッシュ掲載、リリースノート整備。
- アンインストールの確実性:MSIX を優先、EXE/MSI はアンインストーラ検証。
- サポートページ:FAQ(SmartScreen、権限、プロキシ、アンチウイルス誤検知)を整備。
代表ユースケースと推奨構成
- 一般ユーザー配布(問い合わせを減らしたい)→ MSIX(.appinstaller 自動更新)or Store 掲載(EXE/MSI可)。
- 社内 100〜1000 台に一括展開→ Intune で Win32(.intunewin)または MSIX を管理配布。
- 個人/小規模、最速で回したい→ ClickOnce(.NET 5+) ※CAS/部分信頼は不可。
- 柔軟なインストーラ要件→ EXE(Inno/NSIS) or MSI(WiX)。将来は MSIX への移行検討。
- ポータブル提供→ ZIP+署名済み EXE、初回起動手順の明示。
訪問数 2 回, 今日の訪問数 4回
ディスカッション
コメント一覧
まだ、コメントがありません