UWP アプリの展開とデバッグDeploying and debugging UWP apps

この記事では、さまざまな展開およびデバッグのターゲットを指定する手順について説明します。This article guides you through the steps to target various deployment and debugging targets.

Microsoft Visual Studio の配置し、さまざまな Windows 10 デバイスで、ユニバーサル Windows プラットフォーム (UWP) アプリをデバッグすることができます。Microsoft Visual Studio allows you to deploy and debug your Universal Windows Platform (UWP) apps on a variety of Windows 10 devices. Visual Studio は、ターゲット デバイスにアプリを展開して登録するプロセスを処理します。Visual Studio will handle the process of building and registering the app on the target device.

展開ターゲットの選択Picking a deployment target

ターゲットを選択するには、 [デバッグの開始] ボタンの横にあるデバッグ ターゲットのドロップダウンに移動し、アプリの展開先のターゲットを選択します。To pick a target, go to the debug target drop-down next to the Start Debugging button and choose which target you want to deploy your app to. ターゲットを選択した後で、そのターゲットに展開してデバッグする場合は [デバッグの開始 (F5)] を選択し、単にそのターゲットに展開する場合は Ctrl + F5 キーを押します。After the target is selected, select Start Debugging (F5) to deploy and debug on that target, or select Ctrl+F5 to just deploy to that target.

デバイスのターゲットの一覧のデバッグ

  • [シミュレーター] は、現在の開発コンピューター上のシミュレートされた環境にアプリを展開します。Simulator will deploy the app to a simulated environment on your current development machine. このオプションは使用可能な場合、アプリのターゲット プラットフォームの最小値。バージョンが開発用コンピューターにオペレーティング システム未満です。This option is only available if your app's Target Platform Min. Version is less than or equal to the operating system on your development machine.
  • [ローカル コンピューター] は、現在の開発コンピューターにアプリを展開します。Local Machine will deploy the app to your current development machine. このオプションは使用可能な場合、アプリのターゲット プラットフォームの最小値。バージョンが開発用コンピューターにオペレーティング システム未満です。This option is only available if your app's Target Platform Min. Version is less than or equal to the operating system on your development machine.
  • [リモート コンピューター] では、アプリを展開するリモート ターゲットを指定できます。Remote Machine will let you specify a remote target to deploy the app. リモート コンピューターへの展開について詳しくは、「リモート デバイスの指定」をご覧ください。More information about deploying to a remote machine can be found in Specifying a remote device.
  • [デバイス] は、USB 接続のデバイスにアプリを展開します。Device will deploy the app to a USB connected device. デバイスが開発者によりロック解除され、画面がロック解除されている必要があります。The device must be developer unlocked and have the screen unlocked.
  • [エミュレーター] ターゲットが起動し、名前で指定された構成のエミュレーターにアプリが展開されます。An Emulator target will boot up and deploy the app to an emulator with the configuration specified in the name. エミュレーターは、のみ、HYPER-V で使用できる Windows 8.1 を実行しているマシンを有効または超えるです。Emulators are only available on Hyper-V enabled machines running Windows 8.1 or beyond.

展開されているアプリのデバッグDebugging deployed apps

Visual Studio では、 [デバッグ][プロセスにアタッチ] の順に選ぶことによって、実行中の任意の UWP アプリ プロセスにアタッチすることもできます。Visual Studio can also attach to any running UWP app process by selecting Debug, and then Attach to Process. 実行中のプロセスにアタッチする場合、元の Visual Studio プロジェクトは必要ありませんが、プロセスのシンボルを読み込むことは、元のコードを持たないプロセスのデバッグ時に非常に役立ちます。Attaching to a running process doesn’t require the original Visual Studio project, but loading the process's symbols will help significantly when debugging a process that you don't have the original code for.

さらに、 [デバッグ][その他][インストールされているアプリケーション パッケージのデバッグ] を選択することによって、インストール済みのアプリ パッケージにアタッチしてデバッグすることができます。In addition, any installed app package can be attached and debugged by selecting Debug, Other, and then Debug Installed App Packages.

[インストールされているアプリケーション パッケージのデバッグ] ダイアログ ボックス

[起動はしないが、開始時にコードをデバッグする] を選択すると、Visual Studio デバッガーは、UWP アプリが独自のタイミングで起動したときに、UWP アプリにアタッチします。Selecting Do not launch, but debug my code when it starts will cause the Visual Studio debugger to attach to your UWP app when you launch it at a custom time. これは、カスタム パラメーターを使ったプロトコルのアクティブ化など、さまざまな起動方法からの制御パスをデバッグするのに効果的な方法です。This is an effective way to debug control paths from different launch methods, such as protocol activation with custom parameters.

UWP アプリは、Windows 8.1 以降で開発してコンパイルすることができますが、実行するには Windows 10 が必要です。UWP apps can be developed and compiled on Windows 8.1 or later, but require Windows 10 to run. Windows 8.1 PC で UWP アプリを開発している場合、別の Windows 10 デバイスで実行されている UWP アプリをリモートでデバッグできます。ただし、ホストとターゲットの両方のコンピューターが同じ LAN に接続されている必要があります。If you are developing a UWP app on a Windows 8.1 PC, you can remotely debug a UWP app running on another Windows 10 device, provided that both the host and target computer are on the same LAN. これを行うには、両方のコンピューターに Remote Tools for Visual Studio をダウンロードしてインストールします。To do this, download and install the Remote Tools for Visual Studio on both machines. インストールするバージョンはインストール済みの Visual Studio の既存のバージョンと一致している必要があり、選択するアーキテクチャ (x86、x64) もターゲット アプリのアーキテクチャと一致している必要があります。The installed version must match the existing version of Visual Studio that you have installed, and the architecture you select (x86, x64) must also match that of your target app.

パッケージのレイアウトPackage layout

Visual Studio 2015 Update 3 で時点で開発者が、UWP アプリのレイアウト パスを指定するためのオプションが追加されました。As of Visual Studio 2015 Update 3, we have added the option for developers to specify the layout path for their UWP apps. これにより、アプリをビルドするときの、パッケージのレイアウトのディスク上でのコピー先を指定します。This determines where the package layout is copied to on disk when you build your app. 既定では、このプロパティは、プロジェクトのルート ディレクトリに相対的に設定されます。By default, this property is set relative to the project’s root directory. このプロパティを変更しない場合には、動作は Visual Studio の以前のバージョンと同じです。If you do not modify this property, the behavior will remain the same as it has for previous versions of Visual Studio.

このプロパティは、プロジェクトの デバッグ プロパティで変更できます。This property can be modified in the project's Debug properties.

アプリのパッケージを作成するときに、パッケージにすべてのレイアウト ファイルを含める場合には、プロジェクト プロパティ <IncludeLayoutFilesInPackage>true</IncludeLayoutFilesInPackage> を追加する必要がありますIf you want to include all layout files in your package when you create a package for your app, you must add the project property <IncludeLayoutFilesInPackage>true</IncludeLayoutFilesInPackage>.

このプロパティを追加するにはTo add this property:

  1. プロジェクトを右クリックし、 [プロジェクトのアンロード] をクリックします。Right-click the project, and then select Unload Project.
  2. プロジェクトを右クリックし、 [[プロジェクト名].xxproj の編集] を選択します (.xxproj は、プロジェクトの言語に応じて変わります)。Right-click the project, and then select Edit [projectname].xxproj (.xxproj will change depending on project language).
  3. プロパティを追加し、プロジェクトを再度読み込みます。Add the property, and then reload the project.

リモート デバイスの指定Specifying a remote device

C# および Microsoft Visual BasicC# and Microsoft Visual Basic

C# または Microsoft Visual Basic のアプリのリモート コンピューターを指定するには、デバッグ ターゲットのドロップダウンで [リモート コンピューター] を選択します。To specify a remote machine for C# or Microsoft Visual Basic apps, select Remote Machine in the debug target drop-down. [リモート接続] ダイアログが表示され、IP アドレスを指定するか、または検出されたデバイスを選択できます。The Remote Connections dialog will appear, which will let you specify an IP address or select a discovered device. 既定では、 [ユニバーサル] 認証モードが選択されます。By default, the Universal authentication mode is selected. 使用する認証モードを決定するには、「認証モード」をご覧ください。To determine which authentication mode to use, see Authentication modes.

リモート接続ダイアログ ボックス

このダイアログに戻るには、プロジェクト プロパティを開き、 [デバッグ] タブに移動します。そこから、 [リモート コンピューター:] の横にある [検索…] を選択します。To return to this dialog, you can open project properties and go to the Debug tab. From there, select Find next to Remote machine:

[デバッグ] タブ

Creators Update より前のリモート PC にアプリを展開するには、Visual Studio リモート ツールをターゲット PC にダウンロードしてインストールする必要もあります。To deploy an app to a pre-Creators Update remote PC, you will also need to download and install the Visual Studio Remote Tools on the target PC. 詳しい手順については、「リモート PC の手順」をご覧ください。For full instructions, see Remote PC instructions. ただし、Creators Update の PC ではリモート展開もサポートされます。However, as of the Creators Update PC also supports remote deployment.

C++ および JavaScriptC++ and JavaScript

C++ または JavaScript UWP アプリのリモート コンピューターのターゲットを指定します。To specify a remote machine target for a C++ or JavaScript UWP app:

  1. [ソリューション エクスプローラー] で、プロジェクトを右クリックし、 [プロパティ] をクリックします。In the Solution Explorer, right-click the project, and then click Properties.
  2. [デバッグ] 設定に移動し、 [起動するデバッガー] の下で [リモート コンピューター] を選択します。Go to Debugging settings, and under Debugger to launch, select Remote Machine.
  3. [コンピューター名] を入力 (または [検索…] をクリックして検出) し、 [認証の種類] プロパティを設定します。Enter the Machine Name (or click Locate to find one), and then set the Authentication Type property.

デバッグ プロパティ ページ

コンピューターを指定した後で、デバッグ ターゲットのドロップダウンで [リモート コンピューター] を選択し、その指定コンピューターに戻ることができます。After the machine is specified, you can select Remote Machine in the debug target drop-down to return to that specified machine. 一度に選ぶことができるリモート コンピューターは 1 つだけです。Only one remote machine can be selected at a time.

リモート PC の手順Remote PC instructions

注意

これらの手順は、以前のバージョンの Windows 10 でのみ必要です。These instructions are only required for older versions of Windows 10. Creators Update の PC は、Xbox と同じように扱うことができます。As of the Creators Update, a PC can be treated like an Xbox. つまり、PC の開発者モード メニューでデバイスの検出を有効にし、ユニバーサル認証を使って PIN でペアリングして、PC に接続します。That is, by enabling Device Discovery in the PC's Developer Mode menu and using Universal Authentication to PIN pair and connect with the PC.

Creators Update より前のリモート PC に展開するには、ターゲット PC に Visual Studio リモート ツールがインストールされている必要があります。To deploy to a pre-Creators Update remote PC, the target PC must have the Visual Studio Remote Tools installed. リモート PC が以上の値をアプリには、Windows のバージョンを実行してもする必要がありますターゲット プラットフォームの最小値。バージョンプロパティ。The remote PC must also be running a version of Windows that is greater than or equal to your apps Target Platform Min. Version property. リモート ツールをインストールしたら、ターゲット PC でリモート デバッガーを起動する必要があります。After you have installed the remote tools, you must launch the remote debugger on the target PC.

これを行うには、 [スタート] メニューで [リモート デバッガー] を探して開き、プロンプトが表示されたらデバッガーがファイアウォール設定を構成できるようにします。To do this, search for Remote Debugger in the Start menu, open it, and if prompted, allow the debugger to configure your firewall settings. 既定では、デバッガーは Windows 認証を使用して起動します。By default, the debugger launches with Windows authentication. 両方の PC でサインイン ユーザーが同じでない場合、これにはユーザー資格情報が必要になります。This will require user credentials if the signed-in user is not the same on both PCs.

変更する認証なしリモート デバッガーに移動して、ツール - > オプションと設定し、認証なしします。To change it to no authentication, in the Remote Debugger, go to Tools -> Options, and then set it to No Authentication. リモート デバッガーを設定したら、ホスト デバイスが開発者モードに設定されていることを確認する必要があります。After the remote debugger is set up, you must also ensure that you have set the host device to Developer Mode. その後、開発コンピューターから展開できます。After that, you can deploy from your development machine.

詳しくは、Visual Studio ダウンロード センターのページをご覧ください。For more information, see the Visual studio Download Center page.

デバッグのコマンド ライン引数を渡すPassing command line debug arguments

Visual Studio 2019 では、UWP アプリケーションのデバッグを開始するときにデバッグのコマンドライン引数を渡すことができます。In Visual Studio 2019, you can pass command line debug arguments when you start debugging UWP applications. デバッグのコマンド ライン引数には、Application クラスの OnLaunched メソッドで args パラメーターからアクセスすることができますYou can access the command line debug arguments from the args parameter in the OnLaunched method of the Application class. デバッグのコマンド ライン引数を指定するには、プロジェクトのプロパティを開き、 [デバッグ] タブに移動します。To specify command line debug arguments, open the project's properties and navigate to the Debug tab.

注意

これは、Visual Studio 2017 (Version 15.1) で C#、VB、C++ について利用できます。This is available in Visual Studio 2017 (version 15.1) for C#, VB, and C++. JavaScript は、以降のバージョンで使用できます。JavaScript is available in later versions. デバッグのコマンド ライン引数は、シミュレーターを除くすべての種類の展開で利用できます。Command line debug arguments are available for all deployment types except for the Simulator.

C# と VB の UWP プロジェクトでは、 [開始オプション][コマンド ライン引数] フィールドが表示されます。For C# and VB UWP projects, you will see a Command line arguments: field under Start options.

コマンド ライン引数

C++ と JS の UWP プロジェクトでは、 [デバッグ プロパティ] のフィールドとして [コマンド ライン引数] が表示されます。For C++ and JS UWP projects, you will see Command Line Arguments as a field in the Debugging Properties.

C++ と JS でのコマンド ライン引数

コマンド ライン引数を指定すると、アプリの OnLaunched メソッドで引数の値にアクセスすることができます。Once you specify the command line arguments, you can access the value of the argument in the App's OnLaunched method. LaunchActivatedEventArgs オブジェクト args は、値が [コマンド ライン引数] フィールドのテキストに設定された Arguments プロパティを持ちます。The LaunchActivatedEventArgs object args will have an Arguments property with the value set to the text in the Command Line Arguments field.

C++ と JS でのコマンド ライン引数

認証モードAuthentication modes

リモート コンピューターへの展開用に 3 つの認証モードがあります。There are three authentication modes for remote machine deployment:

  • ユニバーサル (暗号化されていないプロトコル) :リモート デバイスにデプロイするたびに、この認証モードを使用します。Universal (Unencrypted Protocol): Use this authentication mode whenever you are deploying to a remote device. これは現在、IoT デバイス、Xbox デバイス、HoloLens デバイスと、Creators Update 以降を搭載した PC を対象としています。Currently, this is for IoT devices, Xbox devices, and HoloLens devices, as well as Creators Update or newer PCs. ユニバーサル (暗号化されていないプロトコル) は、信頼されたネットワークで使う必要があります。Universal (Unencrypted Protocol) should only be used on trusted networks. デバッグ接続は、開発マシンとリモート マシンとの間で渡されるデータを傍受して変更できる悪意のあるユーザーに対して脆弱です。The debugging connection is vulnerable to malicious users who could intercept and change data being passed between the development and remote machine.
  • Windows:この認証モードは、リモート PC (デスクトップまたはラップトップ) の使用するためだけに Visual Studio リモート ツールを実行します。Windows: This authentication mode is only intended to be used for a remote PC (desktop or laptop) running the Visual Studio Remote Tools. ターゲット コンピューターのサインイン ユーザーの資格情報にアクセスできる場合は、この認証モードを使用します。Use this authentication mode when you have access to the credentials of the signed-in user of the target machine. これは、リモート展開用の最も安全なチャネルです。This is the most secure channel for remote deployment.
  • [なし] :この認証モードは、リモート PC (デスクトップまたはラップトップ) の使用するためだけに Visual Studio リモート ツールを実行します。None: This authentication mode is only intended to be used for a remote PC (desktop or laptop) running the Visual Studio Remote Tools. テスト アカウントがサインインしていて資格情報を入力できない環境にテスト コンピューターがセットアップされている場合は、この認証モードを使用します。Use this authentication mode when you have a test machine set up in an environment that has a test account signed in and you cannot enter the credentials. リモート デバッガーの設定が、"認証なし" を受け入れるようになっていることを確認してください。Ensure that the remote debugger settings are set to accept no authentication.

リモート展開の詳細オプションAdvanced remote deployment options

Visual Studio 2015 Update 3、および Windows 10 Anniversary Update のリリースでは、新しい高度なリモート展開オプション特定の Windows 10 デバイスにします。As of the release of Visual Studio 2015 Update 3, and the Windows 10 Anniversary Update, there are new advanced remote deployment options for certain Windows 10 devices. リモート展開の詳細オプションは、プロジェクト プロパティの [デバッグ] メニューにあります。The advanced remote deployment options can be found on the Debug menu for project properties.

新しいプロパティには、次のものが含まれています。The new properties include:

  • 配置の種類Deployment type
  • パッケージの登録パスPackage registration path
  • レイアウトの一部でなくなっているものも含め、デバイスのすべてのファイルを保持するKeep all files on device – even those that are no longer a part of your layout

必要条件Requirements

リモート展開の詳細オプションを利用するには、次の要件を満たす必要があります。To utilize the advanced remote deployment options, you must satisfy the following requirements:

  • Visual Studio 2015 Update 3 またはによって今後 Visual Studio のリリース以降を Windows 10 ツール 1.4.1 でインストール (を Windows 10 Anniversary Update SDK を含む) があるすべてを取得するために、更新プログラムの最新バージョンの Visual Studio を使用することをお勧めします最新の開発およびセキュリティ機能があります。Have Visual Studio 2015 Update 3 or some later Visual Studio release installed with Windows 10 Tools 1.4.1 or later(which includes the Windows 10 Anniversary Update SDK) We recommend that you use the latest version of Visual Studio with updates to ensure you get all the newest development and security features.
  • Windows 10 Anniversary Update の Xbox リモート デバイスまたは Windows 10 Creators Update の PC をターゲットにするTarget a Windows 10 Anniversary Update Xbox remote device or Windows 10 Creators Update PC
  • ユニバーサル認証モードを使うUse Universal Authentication mode

プロパティ ページProperties pages

C# または Visual Basic の UWP アプリでは、[プロパティ] ページは、次のようになります。For a C# or Visual Basic UWP app, the properties page will look like the following.

CS または VB プロパティ

C++ UWP アプリでは、プロパティ ページは次のようになります。For a C++ UWP app, the properties page will look like the following.

Cpp プロパティ

デバイスにファイルをコピーするCopy files to device

[デバイスにファイルをコピーする] ファイルをリモート デバイスにネットワークを介して物理的に転送します。Copy files to device will physically transfer the files over the network to the remote device. レイアウト フォルダー パスにビルドされたパッケージ レイアウトをコピーして登録します。It will copy and register the package layout that is built to the Layout folder path. Visual Studio は、Visual Studio プロジェクト内のファイルとの同期してデバイスにコピーされるファイルを保持します。ただし、 [レイアウトの一部でなくなっているものも含め、デバイスのすべてのファイルを保持する] のオプションがあります。Visual Studio will keep the files that are copied to the device in sync with the files in your Visual Studio project; however, there is an option to keep all files on device – even those that are no longer a part of your layout. このオプションを選択すると、リモート デバイスに以前にコピーされたが、プロジェクトの一部ではなくなったファイルも、リモート デバイス上で維持されます。Selecting this option means that any files that were previously copied to the remote device, but are no longer a part of your project, will remain on the remote device.

[デバイスにファイルをコピーする] で指定するパッケージ登録パスは、コピー先リモート デバイスの物理的な場所です。The package registration path specified when you copy files to device is the physical location on the remote device where the files are copied. このパスは、任意の相対パスとして指定することができます。This path can be specified as any relative path. ファイルが展開される場所は、開発ファイルのルートからの相対的な場所となり、ターゲット デバイスによって異なります。The location where the files are deployed will be relative to a development files root that will vary depending on the target device. 複数の開発者が同じデバイスを共有し、いくつかの異なるビルドのパッケージに作業を行っている場合に、このパスを指定すると便利です。Specifying this path is useful for multiple developers sharing the same device and working on packages with some build variance.

注意

[デバイスにファイルをコピーする] は現在、Windows 10 Anniversary Update を搭載した Xbox と、Windows 10 Creators Update を搭載した PC でサポートされています。Copy files to device is currently supported on Xbox running Windows 10 Anniversary Update and PCs running Windows 10 Creators Update .

リモートのデバイスでレイアウトは、次の既定の場所にコピーを取得します。 \\MY-DEVKIT\DevelopmentFiles\PACKAGE-REGISTRATION-PATHOn the remote device, the layout gets copied to the following default location: \\MY-DEVKIT\DevelopmentFiles\PACKAGE-REGISTRATION-PATH

ネットワークからレイアウトを登録するRegister layout from network

ネットワークからレイアウトを登録する場合には、パッケージ レイアウトをネットワーク共有にビルドでき、ネットワークから直接レイアウトをリモート デバイスに登録できます。When you choose to register the layout from the network, you can build your package layout to a network share and then register the layout on the remote device directly from the network. これには、リモート デバイスからアクセス可能なレイアウト フォルダー パス (ネットワーク共有) を指定する必要があります。This requires that you specify a layout folder path (a network share) that is accessible from the remote device. [レイアウト フォルダー パス] プロパティは、Visual Studio を実行している PC からの相対パスで、 [パッケージ登録パス] プロパティは、同じパスですが、リモート デバイスからの相対パスです。The Layout folder path property is the path set relative to the PC running Visual Studio, while the Package registration path property is the same path, but specified relative to the remote device.

ネットワークからレイアウトを正常に登録するには、まず [レイアウト フォルダー パス] を共有ネットワーク フォルダーにする必要があります。To successfully register the layout from the network, you must first make Layout folder path a shared network folder. これを行うには、エクスプローラーでフォルダーを右クリックして、 [共有] > [特定のユーザー] を選択し、フォルダーを共有するユーザーを選択します。To do this, right-click the folder in File Explorer, select Share with > Specific people, and then choose the users you would like to share the folder with. ネットワークからレイアウトを登録する場合、共有へのアクセスを持つユーザーとして登録することを確認するため、資格情報を求められます。When you try to register the layout from the network, you will be prompted for credentials to ensure that you are registering as a user with access to the share.

これについては、次の例をご覧ください。For help with this, see the following examples:

  • 例 1 (ネットワーク共有としてアクセス可能な、ローカル レイアウト フォルダー):Example 1 (local layout folder, accessible as a network share):

    • レイアウト フォルダーのパス = D:\Layouts\App1Layout folder path = D:\Layouts\App1
    • パッケージ登録のパス = \\NETWORK-SHARE\Layouts\App1Package registration path = \\NETWORK-SHARE\Layouts\App1
  • 例 2 (ネットワーク レイアウト フォルダー):Example 2 (network layout folder):

    • レイアウト フォルダーのパス = \\NETWORK-SHARE\Layouts\App1Layout folder path = \\NETWORK-SHARE\Layouts\App1
    • パッケージ登録のパス = \\NETWORK-SHARE\Layouts\App1Package registration path = \\NETWORK-SHARE\Layouts\App1

最初にネットワークからレイアウトを登録するときに、ターゲット デバイスに資格情報がキャッシュされるため、繰り返しサインインする必要はありません。When you first register the layout from the network, your credentials will be cached on the target device so you do not need to repeatedly sign in. キャッシュされた資格情報を削除するには、Windows 10 SDK の WinAppDeployCmd.exe ツールdeletecredsコマンド を使用できます。To remove cached credentials, you can use the WinAppDeployCmd.exe tool from the Windows 10 SDK with the deletecreds command.

ネットワークからレイアウトを登録する場合には、ファイルは物理的にリモート デバイスにコピーされないため、 [デバイスのすべてのファイルを保持する] を選択することはできません。You cannot select keep all files on device when you register the layout from the network because no files are physically copied to the remote device.

注意

[ネットワークからレイアウトを登録する] は現在、Windows 10 Anniversary Update を搭載した Xbox と、Windows 10 Creators Update を搭載した PC でサポートされています。Register layout from network is currently supported on Xbox running Windows 10 Anniversary Update and PCs running Windows 10 Creators Update.

レイアウトを取得、デバイスのファミリによって次の既定の場所に登録されているリモートのデバイス: Xbox: \\MY-DEVKIT\DevelopmentFiles\XrfsFiles -へのシンボリック リンクは、この、パッケージ登録のパスPC にシンボリック リンクを使用しないと、代わりに直接登録、パッケージ登録のパスOn the remote device, the layout gets registered to the following default location depending on the device family: Xbox: \\MY-DEVKIT\DevelopmentFiles\XrfsFiles - this is a symlink to the package registration path PC does not use a symlink and instead directly registers the package registration path

デバッグのオプションDebugging options

Windows 10 で事前に起動することで UWP アプリの起動時のパフォーマンスが向上しと呼ばれる手法でアプリを中断事前起動します。On Windows 10, the startup performance of UWP apps is improved by proactively launching and then suspending apps in a technique called prelaunch. 多くのアプリはこのモードで動作するために特別に何もする必要はありませんが、一部のアプリでは動作を調整する必要があります。Many apps will not need to do anything special to work in this mode, but some apps may need to adjust their behavior. これらのコード パスの問題をデバッグするために、事前起動モードで Visual Studio からアプリのデバッグを開始できます。To help debug any issues in these code paths, you can start debugging the app from Visual Studio in prelaunch mode.

デバッグがサポートされている両方の Visual Studio プロジェクトから (デバッグ - > その他のデバッグ ターゲット - > ユニバーサル デバッグWindows アプリ事前起動)、およびコンピューターに既にインストールされているアプリ (デバッグ - > その他のデバッグ ターゲット - >インストール済みアプリ パッケージのデバッグを選択して、事前起動とアクティブ化アプリ チェック ボックス)。Debugging is supported both from a Visual Studio project (Debug -> Other Debug Targets -> Debug Universal Windows App Prelaunch), and for apps already installed on the machine (Debug -> Other Debug Targets -> Debug Installed App Package by selecting the Activate app with Prelaunch check box). 詳しくは、「事前起動 UWP をデバッグする」をご覧ください。For more information, see Debug UWP Prelaunch.

スタートアップ プロジェクトの [デバッグ] プロパティ ページで、次の展開オプションを設定できます。You can set the following deployment options on the Debug property page of the startup project:

  • ローカル ネットワーク ループバックを許可します。Allow local network loopback

    セキュリティ上の理由で、標準的な方法でインストールされた UWP アプリでは、それがインストールされているデバイスに対してネットワーク呼び出しを実行することは許可されません。For security reasons, a UWP app that is installed in the standard manner is not allowed to make network calls to the device it is installed on. 既定では、Visual Studio による配置では、配置されたアプリに対するこの規則の適用は免除されます。By default, Visual Studio deployment creates an exemption from this rule for the deployed app. この免除によって、1 台のコンピューター上で通信プロシージャをテストできます。This exemption allows you to test communication procedures on a single machine. Microsoft Store にアプリを送信する前に、この免除なしアプリをテストする必要があります。Before submitting your app to the Microsoft Store, you should test your app without the exemption.

    ネットワーク ループバックに関する除外をアプリから除去するには:To remove the network loopback exemption from the app:

    • C#および Visual Basic デバッグプロパティ ページで、クリア、ローカル ネットワーク ループバックの許可チェック ボックスをオンします。On the C# and Visual Basic Debug property page, clear the Allow local network loopback check box.
    • JavaScript および C++ の [デバッグ] プロパティ ページで、 [ローカル ネットワーク ループバックの許可] の値を [いいえ] に設定しますOn the JavaScript and C++ Debugging property page, set the Allow Local Network Loopback value to No.
  • 非を起動するが、開始時にコードをデバッグ/起動アプリケーションDo not launch, but debug my code when it starts / Launch Application

    アプリ起動時にデバッグ セッションが自動的に開始されるように展開を構成するには:To configure the deployment to automatically start a debugging session when the app is launched:

    • C#および Visual Basic デバッグプロパティ ページで、起動しないが、開始時に、コードをデバッグチェック ボックスをオンします。On the C# and Visual Basic Debug property page, select the Do not launch, but debug my code when it starts check box.
    • JavaScript および C++ の [デバッグ] プロパティ ページで、 [アプリの起動] 値を [はい] に設定します。On the JavaScript and C++ Debugging property page, set the Launch Application value to Yes.

シンボルSymbols

シンボル ファイルには、変数、関数名、エントリ ポイントのアドレスなど、コードをデバッグするときに非常に便利な値が格納されており、例外とコールスタックの実行順序を把握することができます。Symbol files contain a variety of very useful data when debugging code, such as variables, function names, and entry point addresses, allowing you to better understand exceptions and callstack execution order. ほとんどの種類の Windows のシンボルは、Microsoft シンボル サーバーから利用することも、高速にオフラインで参照できるように Windows シンボル パッケージのダウンロード サイトからダウンロードすることもできます。Symbols for most variants of Windows are available through the Microsoft Symbol Server or can be downloaded for faster, offline lookups at Download Windows Symbol Packages.

Visual Studio のシンボル オプションを設定するには、 [ツール] の [オプション] を選択し、ダイアログ ウィンドウで [デバッグ]、[シンボル] の順に移動します。To set symbol options for Visual Studio, select Tools > Options, and then go to Debugging > Symbols in the dialog window.

[オプション] ダイアログ ボックス

WinDbg を使ってデバッグ セッションでシンボルを読み込むには、sympath 変数をシンボル パッケージの場所に設定します。To load symbols in a debugging session with WinDbg, set the sympath variable to the symbol package location. たとえば、次のコマンドを実行すると、Microsoft シンボル サーバーからシンボルが読み込まれ、C:\Symbols ディレクトリにキャッシュされます。For example, running the following command will load symbols from the Microsoft Symbol Server, and then cache them in the C:\Symbols directory:

.sympath SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
.reload

区切り文字 ‘;’ を使用して複数のパスを追加したり、.sympath+ コマンドを使用することもできます。You can add more paths by using the ‘;’ delimiter, or use the .sympath+ command. WinDbg を使用する高度なシンボル操作については、「パブリック シンボルとプライベート シンボル」をご覧ください。For more advanced symbol operations that use WinDbg, see Public and Private Symbols.

WinDbgWinDbg

WinDbg は、Windows SDK に含まれる、Debugging Tools for Windows の一部として出荷される強力なデバッガーです。WinDbg is a powerful debugger that is shipped as part of the Debugging Tools for Windows suite, which is included in the Windows SDK. Windows SDK のインストールでは、スタンドアロン製品として Debugging Tools for Windows をインストールすることができます。The Windows SDK installation allows you to install Debugging Tools for Windows as a standalone product. ネイティブ コードのデバッグには非常に便利ですが、マネージ コードや HTML5 で記述されたアプリについては WinDbg の使用をお勧めできません。While highly useful for debugging native code, we don’t recommend WinDbg for apps written in managed code or HTML5.

UWP アプリで WinDbg を使用するには、まず PLMDebug を使用して、アプリ パッケージのプロセス ライフタイム管理 (PLM) を無効にする必要があります。これについては プロセス ライフタイム管理 (PLM) のテスト ツールとデバッグ ツール で説明されています。To use WinDbg with UWP apps, you will need to first disable Process Lifetime Management (PLM) for your app package by using PLMDebug, as described in Testing and debugging tools for Process Lifetime Management (PLM).

plmdebug /enableDebug [PackageFullName] ""C:\Program Files\Debugging Tools for Windows (x64)\WinDbg.exe\" -server npipe:pipe=test"

Visual Studio とは対照的に、WinDbg のコア機能の多くは、コマンド ウィンドウにコマンドを入力する必要があります。In contrast to Visual Studio, most of the core functionality of WinDbg relies on providing commands to the command window. 入力したコマンドによって、実行状態の表示、ユーザー モードのクラッシュ ダンプの調査、さまざまなモードでのデバッグを行うことができます。The provided commands allow you to view execution state, investigate user mode crash dumps, and debug in a variety of modes.

WinDbg で最もよく使用されるコマンドの 1 つが !analyze -v であり、次のように、現在の例外に関する詳細な情報を取得するために使用されます。One of the most popular commands in WinDbg is !analyze -v, which is used to retrieve a verbose amount of information about the current exception, including:

  • FAULTING_IP: 障害発生時の命令ポインターFAULTING_IP: instruction pointer at the time of fault
  • EXCEPTION_RECORD: 現在の例外のアドレス、コード、フラグEXCEPTION_RECORD: address, code, and flags of the current exception
  • STACK_TEXT: 例外の前のスタック トレースSTACK_TEXT: stack trace prior to exception

WinDbg のすべてのコマンドの一覧については、デバッガー コマンドに関するページをご覧ください。For a complete list of all WinDbg commands, see Debugger Commands.