デスクトップ ブリッジ

既存のデスクトップ アプリを利用して、Windows 10 ユーザー向けの最新のエクスペリエンスを追加します。 Microsoft Store を通じてアプリを配布し、国際市場でのリーチを拡大します。 Store に直接組み込まれている機能を活用することで、より簡単に、アプリの収益化ができます。 もちろん、ストアを使用する必要はありません。 既存のチャンネルを自由に使用してください。

デスクトップ ブリッジ

デスクトップ ブリッジは、最新の Windows アプリ パッケージを使用して開発者が Windows フォーム、WPF、または Win32 デスクトップ アプリやゲームを効率的に配布できるようにするため、プラットフォームに組み込まれているインフラストラクチャです。

このパッケージは、アプリに ID を提供します。デスクトップ アプリは、その ID を使用してユニバーサル Windows プラットフォーム (UWP) API にアクセスできます。 これを利用して、ライブ タイルや通知など、現代的で魅力的なエクスペリエンスを実現できます。 アプリが Windows 10 で実行される場合にのみ、単純な条件付きコンパイルとランタイム チェックを使用して、UWP コードを実行します。

Windows 10 エクスペリエンスを実現するために使用するコード以外は、アプリは元のままです。引き続き、そのアプリを既存の Windows 7、Windows Vista、または Windows XP のユーザーに配布できます。 Windows 10 では、このアプリを現在のアプリと同じように、完全な信頼ユーザー モードで引き続き実行できます。

重要

デスクトップ ブリッジは、Windows 10 バージョン 1607 で導入され、Visual Studio で、Windows 10 Anniversary Edition (10.0、ビルド 14393) 以降のリリースをターゲットとするプロジェクトでのみ使用できます。

注意

Microsoft Virtual Academy から公開されている、このシリーズの短いビデオをご覧ください。 これらのビデオでは、デスクトップ アプリをユニバーサル Windows プラットフォーム (UWP) に移行するプロセスをすべて説明しています。

メリット

以下に、デスクトップ アプリケーションの Windows アプリ パッケージを作成する理由を示します。

✔️ スムーズな展開プロセス。 ブリッジを使用しているアプリやゲームでは、優れた展開エクスペリエンスが提供されます。 このエクスペリエンスにより、ユーザーが安心してアプリのインストールおよび更新を行うことができます。 ユーザーがアプリをアンインストールすると、跡形なく完全に削除されます。 このため、セットアップ エクスペリエンスの設計や、更新プログラムの配信にかかる時間を削減できます。

✔️ 自動更新とライセンス。 アプリは、Microsoft Store の組み込みライセンスと自動更新機能に参加できます。 自動更新機能は、ファイルの変更された部分だけがダウンロードされるため、非常に信頼性が高く効率的なメカニズムです。

✔️ リーチの拡大とシンプルな決済。 Microsoft Store からの配布なら、数百万人の Windows 10 ユーザーにリーチを拡大できます。ユーザーは、アプリとゲームの購入や、アプリ内での購入に各地域の支払い方法を使用できます。

✔️ UWP 機能の追加。 自分のペースで、XAML ユーザー インターフェイス、ライブ タイルの更新、UWP バックグラウンド タスク、アプリ サービスなどの多くの UWP 機能をアプリのパッケージに追加できます。

✔️ 対応デバイスの拡大。 ブリッジを使用すると、徐々にコードをユニバーサル Windows プラットフォームに移行して、電話、Xbox One、HoloLens など、すべての Windows 10 デバイスを対象にできます。

利点の完全な一覧については、「デスクトップ ブリッジ」をご覧ください。

準備

アプリを Windows アプリ ストアに公開する予定はありますか? その場合は、まずこのフォームに必要事項を入力してください。 Microsoft から、オンボード プロセスを開始するための連絡があります。 このプロセスでは、ストア内の名前を予約し、Windows アプリ パッケージを作成するための情報を取得します。

次に、「アプリのパッケージ化の準備」を読み、アプリに該当する点があれば、Windows アプリ パッケージを作成する前に対処してください。 パッケージを作成する前に、多くの変更を加える必要はないかもしれません。 ただし、状況によっては、パッケージを作成する前にアプリへの調整が必要になる場合があります。

パッケージ化

アプリの Windows アプリ パッケージを作成するには、以下のようなツールを使用できます。

Desktop App Converter

このツールの名前には "Converter" という用語が含まれますが、実は、アプリの変換は行いません。 アプリは変更されません。 しかし、Windows アプリ パッケージが生成されます。 アプリによって多くのシステム変更が行われる場合や、インストーラーの処理について不明確な点がある場合に便利です。

Desktop App Converter は、インストーラーの操作を、アプリのパッケージ バージョンで使用される仮想ファイルとレジストリ システムに変換します。 また、Desktop App Converter には、変換以外にも役に立つ機能があります。 その一部を次に示します。

✔️ プレビュー ハンドラー、サムネイル ハンドラー、プロパティ ハンドラー、ファイアウォール規則、URL フラグを自動的に登録する。

✔️ ファイルの種類のマッピングを自動的に登録する。これによりユーザーは、エクスプローラーの [種類] 列を使ってファイルをグループ化できるようになります。

✔️ 公開 COM サーバーを登録する。

✔️ アプリの実行に使用できる証明書を生成する。

✔️ デスクトップ ブリッジと Microsoft Store の要件に照らしてアプリを検証する。

Desktop App Converter を使用する別の優れた理由は、Visual Studio とは別の開発環境を使ってアプリを管理する場合です。 Desktop App Converter は、アプリにインストーラーがなくても使うことができます。

Desktop App Converter を使用してアプリをパッケージ化する (デスクトップ ブリッジ)」をご覧ください。

Visual Studio

Visual Studio を使ってアプリケーションを管理しており、アプリケーションにインストーラーがないか、インストーラーが非常に多数の複雑なタスクを実行しない場合、代わりに Visual Studio の使用を検討してください。

Visual Studio を使うと、パッケージをかなり簡単に作成できます。 パッケージ プロジェクトを追加して、デスクトップ プロジェクトを参照し、F5 キーを押してアプリをデバッグします。 手動で調整する必要はありません。 この新しい効率化されたエクスペリエンスは、以前のバージョンの Visual Studio のエクスペリエンスから大幅に向上しています。 他にも以下のような処理を実行できます。

✔️ ビジュアル アセットを自動的に生成する。

✔️ ビジュアル デザイナーを使ってマニフェストに変更を加える。

✔️ ウィザードを使ってパッケージを生成する。

✔️ Windows デベロッパー センター ダッシュボードで既に予約している名前からアプリに ID を割り当てる。

Visual Studio を使った .NET アプリのパッケージ化 (デスクトップ ブリッジ)」をご覧ください。

サードパーティ インストーラー

いくつかのポピュラーなサード パーティ製品やインストーラーでは、デスクトップ ブリッジがサポートされるようになりました。 これらを使用すると、わずか数クリックで MSI インストーラーやアプリ パッケージを生成することができます。 これらのツールの使用方法について詳しくは、それぞれの製品の Web サイトをご覧ください。

Advanced Installer

Caphyon は、わずか数回のクリックでアプリケーションの Windows アプリ パッケージを生成できる、GUI ベースのデスクトップ アプリ パッケージ作成ツールを無料で提供しています。 このツールでは、サイレント モードで実行されるものも含めて、どのようなインストーラーでもパッケージ化できます。また、アプリがパッケージ化に適しているかどうかを判断するための妥当性チェックも実行できます。 Desktop App Converter は、Hyper-V および VMware にも統合できます。 つまり、独自の仮想マシンを使用することができるため、サイズが 3 GB を超える可能性がある Docker イメージをダウンロードする必要はありません。

Advanced Installer を使用すると、既存のプロジェクトから MSI と Windows アプリ パッケージを生成できます。 また、Advanced installer では、Microsoft Desktop App Converter を使用して生成した Windows アプリ パッケージをインポートすることもできます。 インポートしたアプリ パッケージは、UWP アプリ用に設計されたビジュアル ツールを使用して管理できます。

Advanced Installer では、Visual Studio 2017 および 2015 用の拡張機能も提供されており、これらはデスクトップ ブリッジ アプリのビルドとデバッグに使用できます。

簡単な紹介については、こちらのビデオをご覧ください。

Cloudhouse 互換性コンテナー

Windows 10 および Windows 10 S と互換性のない基幹業務アプリケーションを利用している企業ユーザーの場合、Cloudhouse の互換性コンテナーを使用すると、ソース コードを変更することなく Windows XP アプリケーションと Windows 7 アプリケーションを Windows 10 で実行することや、ユニバーサル Windows プラットフォーム (UWP) で実行できるように変換して、ビジネス向け Microsoft Store や Microsoft InTune を通じて配布することができます。 無料試用版に登録してください。

Cloudhouse が提供する Auto Packager は、アプリケーションが現在実行されているオペレーティング システム (Windows XP など) で、基幹業務アプリケーションをパッケージ化して互換性コンテナーを作成し、UWP に変換できるようにアプリを準備します。 コンテナーはその後、Microsoft の Desktop App Converter ツールと統合して新しい Windows アプリ パッケージ形式に変換されます。

Auto Packager では、インストール/キャプチャおよび実行時分析を使用して、アプリケーションを Windows 10 で実行できるようにするために必要なアプリケーションのファイル、レジストリ、ランタイム、依存関係、および互換性とリダイレクト エンジンを含む、アプリケーションのコンテナーを作成します。 コンテナーは、アプリケーションとそのランタイムの分離を実現し、ユーザーのデバイスで実行されている他のアプリケーションへの影響や競合を回避できます。

ビジネス向け Microsoft Store を通じてビジネス アプリケーションを提供する方法の詳細については、リリースに関するブログの記事をご覧ください。

FireGiant

FireGiant Appx 拡張機能を使用すると、同一の WiX ソース コードから Windows アプリ パッケージと MSI パッケージを同時に作成できます。 ビルドするたびに、Windows アプリ パッケージで Windows 10 のデスクトップ ブリッジをターゲットに、MSI で以前のバージョンの Windows ターゲットにすることができます。

FireGiant Appx 拡張機能では、WiX プロジェクトの静的分析とインテリジェント エミュレーションを使用して、コンテナーや仮想マシンによるディスク領域や実行時のオーバーヘッドが生じることなく、Windows アプリ パッケージを作成します。

FireGiant Appx 拡張機能は、実行することでインストーラーを変換するわけではありません。そのため、インストーラーを繰り返し Windows アプリ パッケージに変換する必要はなく、WiX インストーラーをそのまま維持できます。 さまざまな Windows バージョンのユーザーはすべて、最新の機能強化を入手できます。MSI と Windows アプリ パッケージが同期していないことを開発者が心配する必要はありません。

こちらのビデオで、FireGiant CEO の Rob Mensching が数行のコードで人気のオープンソース 7-Zip 圧縮ツールの Appx (Windows アプリ パッケージ) バージョンを作成した方法や、同じ WiX ソース コードに変更を加えて Windows アプリ パッケージと MSI パッケージの両方を強化した方法を確認してください。

InstallAware

InstallAware は、Microsoft の技術革新をすばやくサポートすることで実績があり、1 つのソースから Windows アプリ パッケージ (デスクトップ ブリッジ)、APP-V (アプリケーションの仮想化)、MSI (Windows インストーラー)、EXE (ネイティブ コード) パッケージを構築します。

InstallAware は、Visual Studio バージョン 2012 ~ 2017 に無料の InstallAware 拡張機能を提供しています。 これを使用すると、Visual Studio ツールバーから直接 1 回クリックするだけで、Windows アプリ パッケージを作成できます。

また、そのセットアップのソース コードがない場合でも、PackageAware (スナップショットなしのセットアップ キャプチャ) または Database Import Wizard (すべての MSI インストーラーと MSM マージ モジュール用) を使用して、任意のセットアップをインポートできます。 GUI ツールを使用して、視覚的な方法またはスクリプトによって、インポートの保守と強化ができます。

高度な APPX 作成オプションを利用すると、Microsoft Store 申請のターゲットや、エンドユーザーに配布するサイドロード用の署名付き Windows アプリ パッケージ バイナリの生成が容易になります。 Nano Server に展開することを目的とした WSA (Windows Server アプリケーション) インストーラー パッケージをすべて 1 つのソースからビルドすることもできます。また、GUI に加えて、コマンド ライン自動化の完全なサポートが提供されます。

InstallAware では、GNU Affero GPL ライセンスの下で APPX Builder Libraryオープン ソースにしており、コマンド ライン アプレットの例と一緒に公開しています。 これらは、WiX などのオープン ソース プラットフォームで使用することを目的としています。

InstallShield

InstallShield は、MSI インストーラーと EXE インストーラーの開発、ユニバーサル Windows プラットフォーム (UWP) パッケージと Windows Server App (WSA) パッケージの作成、およびアプリケーションの仮想化を最小限のスクリプト作成、コーデイング、および作業のやり直しで実現する単一のソリューションを提供します。

InstallShield プロジェクトを数秒でスキャンし、アプリケーションと UWP/WSA パッケージの間の潜在的な互換性の問題を自動的に特定することで、調査にかかる時間を短縮できます。

既存の InstallShield プロジェクトから UWP アプリ パッケージをビルドすることで、Microsoft Store に公開する準備をし、Windows 10 におけるソフトウェアのインストール エクスペリエンスを簡略化します。 Windows インストーラーと UWP アプリ パッケージの両方をビルドし、顧客の希望する展開シナリオをすべてサポートします。 既存の InstallShield プロジェクトから WSA パッケージをビルドし、Nano Server と Windows Server 2016 の展開をサポートします。

展開と保守が容易になるように、インストールをモジュール単位で開発します。その後、コンポーネントと依存関係をビルド時にマージして、Microsoft Store 向けの 1 つの UWP アプリ パッケージにします。 ストア外部で直接配布できるようにするには、UWP アプリ パッケージとその他の依存関係を Suite/Advanced UI インストーラーにバンドルします。

詳細はこちらの eBook をご覧ください。

PACE Suite

PACE Suite は、デスクトップ アプリをユニバーサル Windows プラットフォームに移行するために使うことができるアプリケーション パッケージ ツールです。

PACE Suite を使えば、特別なパッケージ環境を準備したり、追加の Windows SDK コンポーネントをインストールしたりする必要がありません。 PACE Suite は、Windows 10 または Windows Server 2016 の標準パッケージ環境で Windows アプリ パッケージを個別に構築できます。 この図入りの例で、PACE Suite が Windows アプリ パッケージへのインストーラーの再パッケージ化を処理する方法について確認してください。

Windows アプリ パッケージの作成とは別に、Windows インストーラー パッケージ (MSI)、更新プログラム (MSP)、変換 (MST)、App-V パッケージを作成するために PACE Suite を使うことができます。 MSI をオーサリングする段階になると、PACE Suite はアップグレード、アクセス許可の設定、カスタム アクション、スクリプトなどの管理に役立ちます。 System Center Configuration Manager に直接アプリケーションを発行することもできます。

すべてのアプリケーション パッケージ機能を確認するには、PACE Suite の機能に関するページをご覧ください。

RAD Studio

RAD Studio (提供元: Embarcadero) のページをご覧ください。

手動でのパッケージ化

最後のオプションとして、これらのツールを使わずにアプリを変換できます。 変換をきめ細かく制御する場合は、マニフェスト ファイルを作成し、MakeAppx.exe ツールを実行して Windows アプリ パッケージを作成します。

アプリを手動でパッケージ化する (デスクトップ ブリッジ)」をご覧ください。

統合

アプリをシステムと統合する必要がある場合 (ファイアウォール規則を確立する場合など)、アプリのパッケージ マニフェストにそのことを記述すると、システムによって残りの処理が行われます。 これらのタスクのほとんどは、まったくコードを記述する必要がありません。 マニフェストに少し XML を追加するだけで、ユーザーがログオンしたときにプロセスを開始する、アプリをエクスプローラーに統合する、他のアプリに表示される印刷先の一覧に対象アプリを追加する、などの処理を行うことができます。

Windows 10 にアプリを統合する (Windows デスクトップ ブリッジ)」をご覧ください。

強化

アプリをパッケージ化すると、ライブ タイルやプッシュ通知などの機能を追加できます。 このような機能の中には、ほとんど時間をかけずに追加して、アプリのエンゲージメント レベルを大幅に向上できるものもあります。 もう少しコードの追加が必要になるものもあります。

Windows 10 向けのデスクトップ アプリを強化する」をご覧ください。

拡張

一部の Windows 10 エクスペリエンス (タッチ対応 UI ページなど) は、最新のアプリ コンテナー内で実行する必要があります。 一般的に、UWP API を使用して既存のデスクトップ アプリケーションを強化することでエクスペリエンスを追加できるかどうかを最初に判断する必要があります。 エクスペリエンスを実現するために UWP コンポーネントを使用する必要がある場合、ソリューションに UWP コンポーネントを追加すると、アプリ サービスを使用してデスクトップ アプリと UWP コンポーネントの間で通信を行うことができます。

最新の UWP コンポーネントによるデスクトップ アプリケーションの拡張」をご覧ください。

移行

デスクトップ アプリケーションを UWP アプリに変換できるツールはありませんが、多くの既存コードを再利用できるため、UWP アプリの作成コストを削減できます。 これは、できるだけ多くのビジネス ロジックを .NET Standard 2.0 ライブラリに移行することで行うことができます。

.NET Standard 2.0 では、お気に入りの NuGet パッケージとサード パーティ製ライブラリに対する互換性 shim が追加されているだけでなく、.NET API の数が大幅に増えています。

お持ちのコードを .NET Standard ライブラリに移行し、ユニバーサル Windows プラットフォーム (UWP) アプリを作成すると、すべての Windows 10 デバイスをターゲットにすることができます。

デスクトップ アプリと UWP アプリでコードを共有する」をご覧ください

テスト

配布用の準備の一環として現実的な設定でアプリをテストするには、アプリに署名し、インストールすることをお勧めします。 「アプリのテスト」をご覧ください。

重要

Microsoft Store にアプリを公開する場合は、Windows 10 S を実行するデバイスでアプリが正しく動作することを確認してください。これは、Store 要件です。 「Windows アプリの Windows 10 S 対応をテストする」をご覧ください。

検証

作成したアプリを Microsoft Store に公開する、または Windows 認定を受ける最善の方法は、認定のためアプリを提出する前に、ローカルでアプリの検証とテストを行うことです。

DAC を使ってアプリをパッケージ化する場合は、新しい -Verify フラグを使用することで、デスクトップ ブリッジとストアの要件に照らしてパッケージを検証できます。 「アプリをパッケージ化し、アプリに署名して、ストアへの提出に備える」をご覧ください。

Visual Studio を使用している場合は、アプリ パッケージの作成ウィザードでアプリを検証できます。 アプリ パッケージ アップロード ファイルの作成に関するページをご覧ください。

ツールを手動で実行する方法については、「Windows アプリ認定キット」をご覧ください。

Windows アプリ認定でアプリの検証に使用されるテストの一覧を確認するには、「Windows デスクトップ ブリッジ アプリのテスト」をご覧ください。

配布

他のシステムにサイドローディングするか、Microsoft Store に公開することで、アプリを配布することができます。

パッケージ デスクトップ アプリの配布 (デスクトップ ブリッジ)」をご覧ください。

サポートとフィードバック

質問に対する回答を見つける

ご質問がある場合は、 Stack Overflow でお問い合わせください。 Microsoft のチームでは、これらのタグをチェックしています。 こちらから質問することもできます。

フィードバックの提供または機能の提案を行う

UserVoice のページをご覧ください。

このセクションの内容

トピック 説明
アプリのパッケージ化の準備 デスクトップ アプリをパッケージ化する前に確認する項目の一覧を示します。
Desktop App Converter を使用してアプリをパッケージ化する (デスクトップ ブリッジ) Desktop App Converter を実行する方法が説明されています。
アプリを手動でパッケージ化する (デスクトップ ブリッジ) 手動でアプリ パッケージとマニフェストを作成する方法について説明します。
Visual Studio を使った .NET アプリのパッケージ化 (デスクトップ ブリッジ) Visual Studio を使ってデスクトップ アプリをパッケージ化する方法について説明します。
Windows 10 にアプリを統合する (デスクトップ ブリッジ) パッケージ プロジェクトのパッケージ マニフェスト ファイルにタスクを記述することで、アプリを Windows 10 と統合します。
Windows 10 向けのデスクトップ アプリを強化する UWP API を使用して、Windows 10 ユーザーの利便性を高める最新のエクスペリエンスを追加します。
パッケージ デスクトップ アプリで利用可能な UWP API (デスクトップ ブリッジ) パッケージ化されたデスクトップ アプリで利用可能な UWP API を確認します。
最新の UWP コンポーネントによるデスクトップ アプリケーションの拡張 UWP アプリ コンテナー内で実行する必要がある高度なエクスペリエンスを追加します。 アプリ サービスを使用してデスクトップ アプリと UWP プロセスを接続します。
パッケージ デスクトップ アプリの実行、デバッグ、テスト (デスクトップ ブリッジ) パッケージ化されたアプリをデバッグするためのオプションについて説明します。
パッケージ デスクトップ アプリの配布 (デスクトップ ブリッジ) 変換済みのアプリをユーザーに配布する方法を確認します。
デスクトップ ブリッジの内側 (デスクトップ ブリッジ) デスクトップ ブリッジのバックグラウンドでの処理について詳しく説明します。
既知の問題 (デスクトップ ブリッジ) デスクトップ ブリッジに関する既知の問題について説明します。
デスクトップ ブリッジのコード サンプル 変換されたアプリの機能を示す GitHub のコード サンプルです。