WPF、WinForms、または WinUI 3 アプリを作成しました。今、それをユーザーに届ける必要があります。 このガイドでは、完成したビルドから発行済みアプリまでの完全なパスについて説明します。最も一般的な 2 つの配布シナリオについて説明します。
ヒント
Microsoft Storeは、ほとんどの開発者に推奨されるパスです。 コード署名、更新プログラムの配信、検出を処理し、Windowsユーザーに到達するための最も摩擦の少ない方法です。 ストアが適合しない特定の商用、エンタープライズ、または配布の要件がある場合は、直接ダウンロードが適しています。
手順 1: 配布パスを選択する
配布パスによって、コード署名コスト、更新のしくみ、ユーザーがアプリを検出する方法、および企業がアプリをデプロイする方法が決まります。
→ Windows アプリの配布パスを選択しますには完全な比較があります。 要約すると、次のようになります。
- Microsoft Store — ほとんどのアプリに推奨されます。 無料署名、組み込みの更新プログラム、広範な検出可能性、信頼できるインストール エクスペリエンス。 無料の開発者アカウントが必要です。 storedeveloper.microsoft.com で登録します。
- 直接ダウンロード - 自社のネットショップ、エンタープライズ LOB アプリ、またはストアで許可されていないコンテンツを含むアプリを含む商用 ISV に適しています。 署名、ホスティング、および更新は、お客様の責任で行います。
ほとんどの新しいインディーアプリはストアに適しています。 不明な場合は、そこから始めます。
手順 2: コード署名を設定する
直接配布する場合: 信頼できるコード署名証明書が必要です。 署名されていないアプリと自己署名アプリによって強力な SmartScreen 警告がトリガーされ、一部のエンタープライズ環境で完全にブロックされます。
→ Windows アプリ開発者向けのコード署名オプションには、完全な比較があります。 クイック ガイダンス:
- 米国、カナダ、EU、または英国の組織/米国またはカナダの個人:Azure アーティファクト署名 (旧称信頼された署名) - 約 9.99 ドル/月、ハードウェア トークンは必要なく、CI/CD パイプラインと統合されます。 これは、Microsoftストア以外の配布に推奨されるオプションです。
米国/カナダ以外の開発者、または Azure Artifact Signing: DigiCert や Sectigo などの証明機関からの OV 証明書 (通常は 150 ~ 300 ドル/年)。
注
アプリへの署名は、優れた初回実行エクスペリエンスを実現するために必要です。 新しい署名済みアプリでは、評判が構築されるまで SmartScreen 警告が表示されますが、署名されていないアプリの場合よりもはるかに重大ではありません。 開発者向けの SmartScreen の評判を参照して、初期のユーザーに表示される内容を理解してください。
手順 3: アプリをパッケージ化する
アプリをパッケージ化する方法は、使用したアプリ フレームワークによって異なります。
WinUI 3
Windows アプリ SDK プロジェクト テンプレートで作成された WinUI 3 アプリは、既定で既に MSIX としてパッケージ化されています。 Visual Studioでソリューションをビルドすると、出力は .msix または .msixbundle ファイルで、ストアの申請または直接配布の準備が整います。
パッケージ化されていない WinUI 3 アプリ (MSIX パッケージなし) を配布する場合は、「 パッケージ化されていない WinUI 3 アプリの配布」を参照してください。 パッケージ化されていない WinUI 3 アプリでは、単一ファイルの EXE を生成できず、ユーザーのコンピューターに Windows アプリ SDK ランタイムが必要であることに注意してください (ランタイム インストーラーを使用して個別にインストールするか、自己完結型展開を使用してバンドルされています)。
WPFと WinForms
WPFおよび WinForms プロジェクトでは、既定では MSIX は生成されません。 いくつかの選択肢を次に示します。
オプション A: Windows アプリケーション パッケージ プロジェクト (MSIX)
Visual Studioのソリューションに Windows アプリケーション パッケージ Projectを追加します。 これにより、アプリが MSIX パッケージにラップされ、パッケージ ID、ストアの適格性、アプリ インストーラーベースの更新プログラムが提供されます。 これは、ストアの申請に推奨されるアプローチです。
→ 単一プロジェクト MSIX を使用してデスクトップ アプリをパッケージ化する
オプション B: dotnet publish (自己完結型 EXE)
直接ダウンロード配布の場合、dotnet publish--self-contained を使用すると、.NET ランタイムを含むスタンドアロン EXE が生成されます。ユーザーは.NETを個別にインストールする必要はありません。
dotnet publish -c Release -r win-x64 --self-contained true
これにより、インストーラーでの zip 圧縮と配布、または折り返しに適したファイルのフォルダーが生成されます。 ストアに直接アクセスすることはできません。
オプション C: フレームワークに依存する発行
ユーザーに適切な.NET ランタイムをインストールする必要がある場合は、--self-contained を省略します。 出力は小さくなりますが、ランタイムの依存関係があります。
手順 4a: Microsoft Storeに送信する (推奨パス)
ストア申請プロセスは 、パートナー センターを通じて実行されます。
一目で手順:
- 開発者アカウントを作成する - 無料。 storedeveloper.microsoft.com で登録します。 アカウントは永続的です。
- アプリ名を予約 する - 申請前にパートナー センターでアプリの名前を要求します。 開発中、この名前はあなたのために確保されます。
- アプリをビルドしてパッケージ化 する - ストアの要件を満たす MSIX パッケージを作成します。 ストア申請の場合、MSIX/AppX パッケージには CA 信頼署名は必要ありません。Microsoft、認定後にMicrosoft証明書を使用してパッケージに再署名します。 MSI または EXE インストーラーを使用してストアの外部に配布する場合は、Windowsセキュリティ機能によって Authenticode 署名が推奨され、想定されます。
- 申請を作成 する - パッケージをアップロードし、ストア登録情報の詳細 (説明、スクリーンショット、カテゴリ、年齢区分) を指定し、価格を設定します。
- Certification — Microsoftは、ポリシーのコンプライアンスについてアプリを確認します。 通常、新しいアプリの認定には数日かかります。
- 発行 - 認定されると、アプリがストアに表示され、ユーザーが利用できるようになります。
手順 4b: 直接配布する (代替パス)
ストアの外部でアプリを配布する場合は、いくつかのパッケージ化とホスティングのオプションがあります。
MSIX とアプリ インストーラー (.appinstaller)
コンパニオン .appinstaller ファイルと共に配布される MSIX パッケージでは、自動更新チェックがサポートされます。 ユーザーが .appinstaller ファイルからアプリをインストールすると、Windows は指定した URL に対して定期的に新しいバージョンを確認し、更新を提案します。
Important
セキュリティ上の問題により、 ms-appinstaller URI プロトコル (Web リンクから直接インストールできる) は、2023 年 12 月以降、 既定で無効になっています 。 ユーザーは、 .appinstaller または .msix ファイルをダウンロードし、手動で開く必要があります。
→ 配布機能の現在の状態
ClickOnce (WPFと WinForms)
ClickOnce は、WPF アプリと WinForms アプリの自動更新をサポートするVisual Studioに組み込まれた.NET配置テクノロジです。 ユーザーはホストされたマニフェストからインストールし、ClickOnce は更新チェックを透過的に処理します。
ClickOnce は WinUI 3 アプリではサポートされていません 。代わりに、 .appinstaller で MSIX を使用してください。
EXE インストーラー
WiX ツールセットや Inno セットアップなどのツールを使用して作成された従来の EXE インストーラーは、ユーザーにとってなじみがあり、簡単に作成できます。 これらは、多くのWindows アプリケーションで使用される確立されたコミュニティ ツールです。 EXE インストーラーでは、独自の更新メカニズムを実装する必要があることに注意してください。
ダウンロードのホスティング
直接ダウンロードするための一般的なホスティング オプション:
- GitHub リリース - 無料でバージョン管理され、自動化されたビルド パイプラインとうまく統合されます。 オープンソースおよび小規模の商用アプリに適しています。
- 独自の Web サイト - ダウンロード ページ、分析、支払いフローを完全に制御できます。 アプリが拡大した場合は、信頼性の高いストレージと CDN 容量が必要になります。
- サード パーティのストア — ゲームに隣接するアプリの itch.io などのネットショップを通じて配布する開発者もいます。
検出可能性のための winget
アプリを Windows パッケージ マネージャー Community Repository に送信すると、winget install 経由でアプリをインストールできるようになります。 これは、コマンドライン ツールを好む開発者およびパワー ユーザーの対象ユーザーによって特に評価されます。 送信はコミュニティ マニフェスト リポジトリに対するプル要求であり、無料です。
手順 5: 自動更新を設定する
ユーザーを最新バージョンに保つことで、サポートの負担が軽減され、セキュリティ修正プログラムが迅速にユーザーに届きます。
| 配布パス | 更新メカニズム |
|---|---|
| Microsoft Store (MSIX) | 自動 - ストアがバックグラウンドで更新プログラムを配信する |
| Microsoft Store (MSI/EXE インストーラー) | 手動 — アプリまたはインストーラーが更新プログラムを処理します。ストアが既存のユーザーに更新プログラムをプッシュしない |
MSIX + .appinstaller |
組み込み — Windowsは、スケジュールに従って指定した URL を確認します |
| ClickOnce | 組み込み — 起動時に更新プログラムがチェックされます |
| EXE インストーラーまたは自己完結型 EXE | 手動での実装が必要 |
組み込みの更新メカニズムのない EXE または自己完結型の展開の場合、Velopack は、アプリに自動更新とインストーラーの機能 .NETを追加するコミュニティ ツールです。 Microsoft製品ではなく、独自の要件に基づいて評価します。
手順 6: 新しいアプリの SmartScreen を処理する
すべての新しいアプリは、どの程度署名されているかに関係なく、十分なダウンロード履歴が蓄積されるまで、最初のダウンロード時に SmartScreen 警告をトリガーします。 これは期待どおりであり、正常です。 これを適切に処理する方法を次に示します。
- すべてのリリースに署名します。 署名されていないアプリでは、より重大な「WindowsはPCを保護しました」ブロックが表示されます。 署名されたアプリでは、ユーザーがより簡単にバイパスできる、よりソフトな "認識されないアプリ" の警告が表示されます。
- 早期ユーザーに期待値を設定します。 ベータテスト担当者と早期導入者に何を期待すべきかを伝えます。 リリースのお知らせの簡単なメモ ("最初の実行時に SmartScreen プロンプトが表示される場合があります。これは、新しいアプリの場合は正常です。「詳細情報」をクリックしてから「とにかく実行」をクリックします)は、混乱を防ぎ、インストールを中止します。
- しばらくお待ちください。 評判は、ダウンロード ボリュームを使用して有機的に構築されます。 コンシューマー エンドポイントに対してこれを高速化するための手動送信プロセスはありません。
開発者向けの smartScreen の評判→、完全な評判モデル、各ステージでユーザーに表示される内容、およびエンタープライズ ポリシーに関する考慮事項について説明します。
次は何ですか
アプリが発行されたら、次のことができます。
- アプリの正常性と評価を監視する - パートナー センターでは、ストア アプリのクラッシュ分析、ユーザー評価、レビュー管理が提供されます
- 段階的なロールアウトを使用してリリースを管理する - ストアでは、完全なリリースの前にユーザーの割合に新しいバージョンをロールアウトできます
- テレメトリの設定 - アプリの使用方法を理解するために、クラッシュ分析サービスと使用状況分析サービス (Azure アプリケーション Insights などの別の分析 SDK を統合することを検討してください
- ユーザー フィードバックに対する応答 — パートナー センターは Store のレビューを表示します。直接ダウンロード アプリの場合は、フィードバック チャネル (GitHubの問題、専用のメール アドレス、またはコミュニティ フォーラム) を検討してください。
関連するコンテンツ
Windows developer