パッケージ デスクトップ アプリの実行、デバッグ、テスト (デスクトップ ブリッジ)

署名せずにパッケージ アプリを実行し、その外観を確認してみましょう。 その後、ブレークポイントを設定し、コード全体をステップ実行します。 運用環境でアプリをテストする準備ができたら、アプリに署名してインストールします。 このトピックでは、これらの作業を行う方法について説明します。

アプリを実行する

証明書を取得して署名する作業を行わなくても、アプリをローカルで実行およびテストできます。

Visual Studio の UWP プロジェクトを使用してパッケージを作成した場合、パッケージ プロジェクトをスタートアップ プロジェクトに設定するだけで、Ctrl キーを押しながら F5 キーを押すことでアプリが起動するようになります。

Desktop App Converter を使用した場合やアプリを手動でパッケージ化した場合は、Windows PowerShell コマンド プロンプトを開き、出力フォルダーの PacakgeFiles サブフォルダーから次のコマンドレットを実行します。

Add-AppxPackage –Register AppxManifest.xml

アプリを起動するには、そのアプリを Windows スタート メニューで見つけます。

スタート メニューに表示されたパッケージ アプリ

注意

パッケージ アプリは、常に対話ユーザーとして実行されます。パッケージ アプリをインストールするドライブは、NTFS 形式にフォーマットされている必要があります。

アプリのデバッグ

アプリをデバッグするたびにダイアログ ボックスでパッケージを選択するか、拡張機能をインストールして、セッションを開始するたびにパッケージを選ぶことなくアプリをデバッグできます。

パッケージを選択してアプリをデバッグする

このオプションでは、セットアップの時間は最短ですが、デバッグ セッションを開始するたびに余分な手順が必要になります。

  1. パッケージ アプリがローカル コンピューターにインストールされるように、必ず、パッケージ アプリを 1 回以上起動します。

    上の「アプリを実行する」セクションをご覧ください。

  2. Visual Studio を起動します。

    管理者特権でアプリをデバッグする場合は、[管理者として実行] オプションを使用して Visual Studio を起動します。

  3. Visual Studio で、[デバッグ]->[その他のデバッグ ターゲット]->[インストールされているアプリケーション パッケージのデバッグ] の順に選択します。

  4. [インストールされているアプリケーション パッケージのデバッグ] リストで、目的のアプリ パッケージを選び、[アタッチ] ボタンを選択します。

パッケージを選択せずにアプリをデバッグする

このオプションでは、セットアップの時間が最長になりますが、アプリを起動するたびにインストールされているパッケージを選択する必要がありません。 このアプローチを使用するには、Visual Studio 2017 をインストールする必要があります。

  1. まず、Desktop Bridge Debugging Projectをインストールします。

  2. Visual Studio を起動し、デスクトップ アプリケーション プロジェクトを開きます。

  3. Desktop Bridge Debugging Project をソリューションに追加します。

    プロジェクトのテンプレートは、インストール済みテンプレートの [その他のプロジェクトの種類] グループにあります。

    alt

    Desktop Bridge Debugging Project がソリューションに表示されます。

    alt

  4. Desktop Bridge Debugging Project のプロパティ ページを開きます。

  5. [パッケージ レイアウト] フィールドをパッケージ マニフェスト ファイル (AppxManifest.xml) の場所に設定し、[スタート画面のタイル] ドロップダウン リストからアプリの実行可能ファイルを選択します。

    alt

  6. コード エディターで、AppXPackageFileList.xml ファイルを開きます。

  7. 以下の要素について、XML ブロックのコメントを解除し、値を追加します。

    MyProjectOutputPath: デスクトップ アプリケーションのデバッグ フォルダーの相対パス。

    LayoutFile: デスクトップ アプリケーションのデバッグ フォルダーにある実行可能ファイル。

    PackagePath: 変換プロセス中に Windows アプリ パッケージ フォルダーにコピーされた、デスクトップ アプリケーションの実行可能ファイルの完全修飾ファイル名。

    次に例を示します。

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
     <MyProjectOutputPath>..\MyDesktopApp\bin\Debug</MyProjectOutputPath>
    </PropertyGroup>
    <ItemGroup>
      <LayoutFile Include="$(MyProjectOutputPath)\MyDesktopApp.exe">
        <PackagePath>$(PackageLayout)\MyDesktopApp.exe</PackagePath>
      </LayoutFile>
    </ItemGroup>
    </Project>
    

    ソリューション内の他のプロジェクトから生成された dll ファイルをアプリで使用する場合に、これらの DLL に含まれるコードにステップ インするには、各 dll ファイル用の LayoutFile 要素を含めます。

    ...
       <LayoutFile Include="$(MyProjectOutputPath)\MyDesktopApp.Models.dll">
       <PackagePath>$(PackageLayout)\MyDesktopApp.Models.dll</PackagePath>
       </LayoutFile>
    ...
    
  8. パッケージ プロジェクトをスタートアップ プロジェクトに設定します。

    alt

  9. デスクトップ アプリケーション コードにブレークポイントを設定し、デバッガーを起動します。

    デバッグ ボタン

    Visual Studio は、XML ファイルで指定した実行可能ファイルと dll ファイルを Windows アプリ パッケージにコピーして、デバッガーを起動します。

複数のビルド構成を処理する

複数のビルド構成 (Release と Debug など) を定義した場合は、デバッガーの起動時に Visual Studio で選択されたビルド構成に一致するファイルのみがコピーされるように、AppXPackageFileList.xml ファイルを修正することができます。

次に例を示します。

<PropertyGroup>
    <MyProjectOutputPath Condition="$(Configuration) == 'Debug'">..\MyDesktopApp\bin\Debug</MyProjectOutputPath>
    <MyProjectOutputPath Condition="$(Configuration) == 'Release'"> ..\MyDesktopApp\bin\Release</MyProjectOutputPath>
</PropertyGroup>

アプリに対する UWP 機能強化についてデバッグする

ライブ タイルなどの最新のエクスペリエンスでアプリの機能を強化することもできます。 その場合は、条件付きコンパイルを使用して、指定されたビルド構成でコード パスを有効にします。

  1. まず、Visual Studio でビルド構成を定義し、「DesktopUWP」などの名前を付けます。

  2. プロジェクトのプロジェクト プロパティの [ビルド] タブで、その名前を [条件付きコンパイル シンボル] フィールドに追加します。

    alt

  3. 条件付きコード ブロックを追加します。 このコードは、DesktopUWP ビルド構成に対してのみコンパイルできます。

    [Conditional("DesktopUWP")]
    private void showtile()
    {
        XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Text01);
        XmlNodeList textNodes = tileXml.GetElementsByTagName("text");
        textNodes[0].InnerText = string.Format("Welcome to DesktopUWP!");
        TileNotification tileNotification = new TileNotification(tileXml);
        TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);
    }
    

アプリ全体のライフ サイクルについてデバッグする

場合によっては、アプリを開始する前にデバッグを行うなど、デバッグ プロセスを細かく制御する必要があります。

PLMDebug を使用すると、中断、再開、終了などを含むアプリのライフ サイクルについて、完全に制御できます。

PLMDebug は Windows SDK に含まれています。

デバッグ セッションと次のデバッグ セッションの間にアプリを変更する

バグを修正するための変更をアプリに加えた場合は、MakeAppx ツールを使ってアプリを再パッケージ化します。 「MakeAppx ツールを実行する」をご覧ください。

アプリのテスト

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

Visual Studio を使ってアプリをパッケージ化した場合は、アプリに署名してインストールするスクリプトを実行できます。 「アプリ パッケージをサイドローディングする」をご覧ください。

Desktop App Converter を使用してアプリをパッケージ化する場合は、sign パラメーターを使用し、生成された証明書を使って、アプリに自動的に署名します。 その証明書をインストールしてから、アプリをインストールする必要があります。 「パッケージ アプリを実行する」をご覧ください。

アプリには、手動で署名することもできます。 その方法は、次のとおりです。

  1. 証明書を作成します。 「証明書を作成する」をご覧ください。

  2. その証明書をシステム上の証明書ストア ("信頼されたルート" または "信頼されたユーザー") にインストールします。

  3. その証明書を使ってアプリに署名します。「SignTool を使ってアプリ パッケージに署名する」をご覧ください。

    重要

    証明書の発行元名がアプリの発行者名と一致することを確認してください。

SigningCerts

アプリの Windows 10 S 対応をテストする

アプリを公開する前に、Windows 10 S を実行するデバイスでそのアプリが正しく動作することを確認してください。実際、Windows ストアにアプリを公開する予定がある場合はこの作業を行わなければなりません。それがストア要件になっているためです。 Windows 10 S を実行するデバイスで正しく動作しないアプリは認定されません。

Windows アプリの Windows 10 S 対応をテストする」をご覧ください。

完全な信頼コンテナー内で別のプロセスを実行する

指定されたアプリ パッケージのコンテナー内でカスタムのプロセスを起動することができます。 これは、シナリオをテストするために役立つ場合があります (たとえば、カスタムのテスト ハーネスがあり、アプリの出力をテストする必要がある場合など)。 これを行うには、Invoke-CommandInDesktopPackage PowerShell コマンドレットを使用します。

Invoke-CommandInDesktopPackage [-PackageFamilyName] <string> [-AppId] <string> [-Command] <string> [[-Args]
    <string>]  [<CommonParameters>]

次のステップ

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

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

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

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