Visual Studio を使ったアプリのパッケージ化 (デスクトップ ブリッジ)

Visual Studio を使用して、デスクトップ アプリのパッケージを生成できます。 その後、そのパッケージを Windows ストアに公開したり、1 台以上の PC にサイドローディングしたりすることができます。

このガイドでは、ソリューションをセットアップして、デスクトップ アプリケーションのパッケージを生成する方法を説明します。

まず、アプリの配布方法を検討する

アプリを Windows ストアに公開する予定であれば、このフォームへの記入から開始します。 Microsoft から、オンボード プロセスを開始するための連絡があります。 このプロセスでは、ストア内の名前を予約し、アプリをパッケージ化するための情報を取得します。

パッケージ プロジェクトをソリューションに追加する

  1. Visual Studio で、デスクトップ アプリケーション プロジェクトが含まれたソリューションを開きます。

  2. ソリューションに JavaScript の [空白のアプリ (ユニバーサル Windows)] プロジェクトを追加します。

    コードを追加する必要はありません。 プロジェクトを追加したのは単にパッケージを生成するためです。 このプロジェクトを "パッケージ プロジェクト" と呼びます。

    JavaScript の UWP プロジェクト

    重要

    通常、このプロジェクトには JavaScript バージョンを使用する必要があります。 C#、VB.NET、および C++ バージョンにはいくつかの問題があります。これらを使用する場合は、作業を行う前に既知の問題のガイドをご覧ください。

デスクトップ アプリケーション バイナリをパッケージ プロジェクトに追加する

パッケージ プロジェクトにバイナリを直接追加します。

  1. ソリューション エクスプローラーで、パッケージ プロジェクト フォルダーを展開し、サブフォルダーを作成して、任意の名前 (win32 など) を付けます。

  2. サブフォルダーを右クリックし、[既存項目の追加] を選択します。

  3. [既存項目の追加] ダイアログ ボックスで、デスクトップ アプリケーションの出力フォルダーのファイルを見つけて、追加します。 これには、実行可能ファイルだけでなく、そのフォルダー内にある dll ファイルや .config ファイルも含まれます。

    実行可能ファイルの参照

    デスクトップ アプリケーション プロジェクトに変更を加えるたびに、これらのファイルの新しいバージョンをパッケージ プロジェクトにコピーする必要があります。 この作業を自動化するには、パッケージ プロジェクトのプロジェクト ファイルにビルド後のイベントを追加します。 次に例を示します。

    <Target Name="PostBuildEvent">
      <Copy SourceFiles="..\MyWindowsFormsApplication\bin\Debug\MyWindowsFormsApplication.exe"
        DestinationFolder="win32" />
      <Copy SourceFiles="..\MyWindowsFormsApplication\bin\Debug\MyWindowsFormsApplication.exe.config"
        DestinationFolder="win32" />
      <Copy SourceFiles="..\MyWindowsFormsApplication\bin\Debug\MyWindowsFormsApplication.pdb"
        DestinationFolder="win32" />
      <Copy SourceFiles="..\MyWindowsFormsApplication\bin\Debug\MyBusinessLogicLibrary.dll"
        DestinationFolder="win32" />
      <Copy SourceFiles="..\MyWindowsFormsApplication\bin\Debug\MyBusinessLogicLibrary.pdb"
        DestinationFolder="win32" />
    </Target>
    

パッケージ マニフェストの変更

パッケージ プロジェクトには、パッケージの設定を記述したファイルが含まれます。 既定では、このファイルには UWP アプリが記述されています。そのため、完全信頼で実行されるデスクトップ アプリケーションがパッケージに含まれていることをシステムで認識するように、このファイルを変更する必要があります。

  1. ソリューション エクスプ ローラーで、パッケージ プロジェクトを展開し、package.appxmanifest ファイルを右クリックして、[コードの表示] を選択します。

    .NET プロジェクトの参照

  2. 次の名前空間をファイルの先頭に追加してから、IgnorableNamespaces のリストに名前空間のプレフィックスを追加します。

    xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
    

    作業が完了すると、名前空間の宣言は次のようになります。

    <Package
      xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
      xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
      xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
      xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
      IgnorableNamespaces="uap mp rescap">
    
  3. TargetDeviceFamily 要素を見つけて、Name 属性を Windows.Desktop に、MinVersion 属性をパッケージ プロジェクトの最小バージョンに、MaxVersionTested をパッケージ プロジェクトのターゲット バージョンにそれぞれ設定します。

    <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.10586.0" MaxVersionTested="10.0.15063.0" />
    

    最小バージョンとターゲット バージョンは、パッケージ プロジェクトのプロパティ ページで確認できます。

    最小バージョンとターゲット バージョンの設定

  4. Application 要素から StartPage 属性を削除します。 次に、Executable 属性と EntryPoint 属性を追加します。

    Application 要素は次のようになります。

    <Application Id="App"  Executable=" " EntryPoint=" ">
    
  5. Executable 属性を、デスクトップ アプリケーションの実行可能ファイルの名前に設定します。 次に、EntryPoint 属性を Windows.FullTrustApplication に設定します。

    Application 要素は、次のようになります。

    <Application Id="App"  Executable="win32\MyWindowsFormsApplication.exe" EntryPoint="Windows.FullTrustApplication">
    
  6. runFullTrust 機能を Capabilities 要素に追加します。

      <rescap:Capability Name="runFullTrust"/>
    

    この宣言の下に青い波線マークが表示される可能性がありますが、これは無視して問題ありません。

    重要

    C++ デスクトップ アプリケーションのパッケージを作成する場合は、アプリと共に Visual C++ ランタイムを展開できるように、マニフェスト ファイルにいくつか追加の変更を加えることが必要になります。 デスクトップ ブリッジ プロジェクトでの Visual C++ ランタイムの使用に関するページをご覧ください。

  7. パッケージ プロジェクトをビルドし、エラーが表示されないことを確認します。

  8. パッケージをテストする場合は、「パッケージ デスクトップ アプリの実行、デバッグ、テスト (デスクトップ ブリッジ)」をご覧ください。

    その後、このガイドに戻ったら、次のセクションを確認してパッケージを生成します。

パッケージの生成

アプリのパッケージを生成する方法については、「UWP アプリのパッケージ化」のトピックのガイダンスに従ってください。

[パッケージの選択と構成] 画面が表示されたら、いずれかのチェック ボックスを選択する前に、パッケージに含まれているバイナリの種類について少し考える必要があります。

  • C#、C++、または VB.NET ベースのユニバーサル Windows プラットフォーム プロジェクトをソリューションに追加してデスクトップ アプリケーションを拡張している場合は、[x86] および [x64] のチェック ボックスをオンにします。

  • それ以外の場合は、[ニュートラル] チェック ボックスをオンにします。

注意

サポート対象の各プラットフォームを明示的に選択することが必要になるのは、拡張したソリューションに、UWP プロジェクト用とデスクトップ プロジェクト用という、2 種類のバイナリが含まれているためです。 これらはバイナリの種類が異なるため、.NET Native ではプラットフォームごとにネイティブ バイナリを明示的に生成する必要があります。

パッケージを生成しようとするとエラーが表示される場合は、既知の問題のガイドをご覧ください。発生している問題がリスト内に見つからない場合は、その問題についてこちらでお知らせください。

次のステップ

アプリを実行する/問題を検出して修正する

パッケージ デスクトップ アプリの実行、デバッグ、テスト (デスクトップ ブリッジ)」をご覧ください。

UWP API を追加してデスクトップ アプリを強化する

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

UWP コンポーネントを追加してデスクトップ アプリを拡張する

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

アプリを配布する

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

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

マイクロソフトのチームでは、StackOverflow タグをチェックしています。

この記事に関するフィードバックを送信する

下のコメント セクションをご利用ください。