デスクトップアプリを手動でパッケージ化するPackage a desktop app manually

この記事では、Visual Studio や MSIX パッケージ化ツールなどのツールを使用せずにアプリケーションをパッケージ化する方法について説明します。This article shows you how to package your application without using tools such as Visual Studio or the MSIX Packaging Tool.

アプリを手動でパッケージ化するには、パッケージマニフェストファイルを作成し、 Makeappxコマンドラインツールを実行して Windows アプリケーションパッケージを生成します。To manually package your app, create a package manifest file, and then run the MakeAppx.exe command line tool to generate a Windows app package.

Xcopy コマンドを使用してアプリケーションをインストールする場合、またはアプリのインストーラーによってシステムに対して行われる変更について理解していて、プロセスをより細かく制御する必要がある場合は、手動でパッケージ化することを検討してください。Consider manual packaging if you install your application by using the xcopy command, or you're familiar with the changes that your app's installer makes to the system and want more granular control over the process.

インストーラーによってどのような変更がシステムに加えられるのかわからない場合や、自動化ツールを使用してパッケージ マニフェストを生成する場合は、こちらのオプションのいずれかを検討してください。If you're uncertain about what changes your installer makes to the system, or if you'd rather use automated tools to generate your package manifest, consider any of these options.

重要

デスクトップアプリケーション (デスクトップブリッジとも呼ばれます) の Windows アプリケーションパッケージを作成する機能は、windows 10 のバージョン1607で導入されました。 windows 10 の記念日更新を対象とするプロジェクトでのみ使用できます (10.0;ビルド 14393) 以降のリリース (Visual Studio)。The ability to create a Windows app package for your desktop application (otherwise known as the Desktop Bridge) was introduced in Windows 10, version 1607, and it can only be used in projects that target Windows 10 Anniversary Update (10.0; Build 14393) or a later release in Visual Studio.

まず、アプリケーションを準備しますFirst, prepare your application

このガイドは、アプリケーションのパッケージ作成を開始する前に確認してください。デスクトップアプリケーションをパッケージ化する準備をします。Review this guide before you begin creating a package for your application: Prepare to package a desktop application.

パッケージ マニフェストを作成するCreate a package manifest

ファイルを作成し、appxmanifest.xml という名前を付けて、以下の XML を追加します。Create a file, name it appxmanifest.xml, and then add this XML to it.

これは、パッケージに必要な要素や属性が含まれた基本テンプレートです。It's a basic template that contains the elements and attributes that your package needs. 次のセクションで、これらに値を追加します。We'll add values to these in the next section.

<?xml version="1.0" encoding="utf-8"?>
<Package
    xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
  xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities">
  <Identity Name="" Version="" Publisher="" ProcessorArchitecture="" />
    <Properties>
       <DisplayName></DisplayName>
       <PublisherDisplayName></PublisherDisplayName>
             <Description></Description>
      <Logo></Logo>
    </Properties>
    <Resources>
      <Resource Language="" />
    </Resources>
      <Dependencies>
      <TargetDeviceFamily Name="Windows.Desktop" MinVersion="" MaxVersionTested="" />
      </Dependencies>
      <Capabilities>
        <rescap:Capability Name="runFullTrust"/>
      </Capabilities>
    <Applications>
      <Application Id="" Executable="" EntryPoint="Windows.FullTrustApplication">
        <uap:VisualElements DisplayName="" Description=""   Square150x150Logo=""
                   Square44x44Logo=""   BackgroundColor="" />
      </Application>
     </Applications>
  </Package>

ファイルのパッケージ レベル要素に値を設定するFill in the package-level elements of your file

このテンプレートに、パッケージを説明する情報を設定します。Fill in this template with information that describes your package.

Identity 情報Identity information

Identity 要素の例を以下に示します。各属性にはプレースホルダー テキストが指定されています。Here's an example Identity element with placeholder text for the attributes. ProcessorArchitecture 属性は、x64 または x86 に設定できます。You can set the ProcessorArchitecture attribute to x64 or x86.

<Identity Name="MyCompany.MySuite.MyApp"
          Version="1.0.0.0"
          Publisher="CN=MyCompany, O=MyCompany, L=MyCity, S=MyState, C=MyCountry"
                ProcessorArchitecture="x64">

注意

Microsoft Store でアプリケーション名を予約している場合は、パートナーセンターを使用して名前と発行者を取得できます。If you've reserved your application name in the Microsoft Store, you can obtain the Name and Publisher by using Partner Center. アプリケーションを他のシステムにサイドロードことを計画している場合は、選択した発行元の名前が、アプリの署名に使用する証明書の名前と一致している限り、独自の名前を指定できます。If you plan to sideload your application onto other systems, you can provide your own names for these as long as the publisher name that you choose matches the name on the certificate you use to sign your app.

PropertiesProperties

Properties 要素には、必須の子要素が 3 つあります。The Properties element has 3 required child elements. 次に示すのは、Properties ノードの例です。要素はプレースホルダー テキストが指定されています。Here is an example Properties node with placeholder text for the elements. DisplayNameは、ストアにアップロードされるアプリのストアに予約するアプリケーションの名前です。The DisplayName is the name of your application that you reserve in the Store, for apps which are uploaded to the Store.

<Properties>
  <DisplayName>MyApp</DisplayName>
  <PublisherDisplayName>MyCompany</PublisherDisplayName>
  <Logo>images\icon.png</Logo>
</Properties>

リソースResources

次に Resources ノードの例を示します。Here is an example Resources node.

<Resources>
  <Resource Language="en-us" />
</Resources>

依存関係Dependencies

パッケージを作成するデスクトップアプリの場合は、常にName属性をにWindows.Desktop設定します。For desktop apps that you create a package for, always set the Name attribute to Windows.Desktop.

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

CapabilitiesCapabilities

パッケージを作成するデスクトップアプリの場合は、 runFullTrust機能を追加する必要があります。For desktop apps that you create a package for, you'll have to add the runFullTrust capability.

<Capabilities>
  <rescap:Capability Name="runFullTrust"/>
</Capabilities>

アプリケーション レベル要素に値を設定するFill in the application-level elements

このテンプレートに、アプリを説明する情報を指定します。Fill in this template with information that describes your app.

Application 要素Application element

パッケージを作成するデスクトップアプリの場合、 EntryPointアプリケーション要素の属性は常にWindows.FullTrustApplicationです。For desktop apps that you create a package for, the EntryPoint attribute of the Application element is always Windows.FullTrustApplication.

<Applications>
  <Application Id="MyApp"     
        Executable="MyApp.exe" EntryPoint="Windows.FullTrustApplication">
   </Application>
</Applications>

視覚要素Visual elements

次に VisualElements ノードの例を示します。Here is an example VisualElements node.

<uap:VisualElements
    BackgroundColor="#464646"
    DisplayName="My App"
    Square150x150Logo="images\icon.png"
    Square44x44Logo="images\small_icon.png"
    Description="A useful description" />

(省略可能) ターゲット ベースのプレートなしのアセットを追加する(Optional) Add Target-based unplated assets

ターゲット ベースのアセットは、Windows タスク バー、タスク ビュー、スナップ アシスト、Alt + Tab キーを押したとき、およびスタート画面のタイルの右下に表示されるアイコンおよびタイルで使用されます。Target-based assets are for icons and tiles that appear on the Windows taskbar, task view, ALT+TAB, snap-assist, and the lower-right corner of Start tiles. これらについて詳しくは、こちらをご覧ください。You can read more about them here.

  1. 正しい 44 x 44 画像を取得して、画像保存用のフォルダー (Assets) にコピーします。Obtain the correct 44x44 images and then copy them into the folder that contains your images (i.e., Assets).

  2. 各 44 x 44 画像のコピーを同じフォルダーに作成し、ファイル名の末尾に .targetsize-44_altform-unplated を追加します。For each 44x44 image, create a copy in the same folder and append .targetsize-44_altform-unplated to the file name. これにより、同じ画像で異なる名前のアイコンが、2 つずつフォルダーに保存されます。You should have two copies of each icon, each named in a specific way. たとえば、プロセスの完了後には、assets フォルダーに MYAPP_44x44.pngMYAPP_44x44.targetsize-44_altform-unplated.png のようなファイルが含まれています。For example, after completing the process, your assets folder might contain MYAPP_44x44.png and MYAPP_44x44.targetsize-44_altform-unplated.png.

    注意

    この例では、MYAPP_44x44.png という名前のアイコンは、Windows アプリ パッケージの Square44x44Logo ロゴ属性で参照するアイコンです。In this example, the icon named MYAPP_44x44.png is the icon that you'll reference in the Square44x44Logo logo attribute of your Windows app package.

  3. Windows アプリ パッケージで、透明にするすべてのアイコンについて BackgroundColor を設定します。In the Windows app package, set the BackgroundColor for every icon you are making transparent.

  4. 次のサブセクションに進み、新しいパッケージ リソース インデックス ファイルを生成します。Continue to the next subsection to generate a new Package Resource Index file.

パッケージ リソース インデックス (PRI) ファイルを生成するGenerate a Package Resource Index (PRI) file

前のセクションで説明したようにターゲットベースのアセットを作成する場合、またはパッケージを作成した後にアプリケーションのビジュアルアセットを変更する場合は、新しい PRI ファイルを生成する必要があります。If you create target-based assets as described in the section above, or you modify any of the visual assets of your application after you've created the package, you'll have to generate a new PRI file.

  1. [開発者コマンド プロンプト for VS 2017] を開きます。Open a Developer Command Prompt for VS 2017.

    開発者コマンド プロンプト

  2. パッケージのルート フォルダーにディレクトリを変更した後、makepri createconfig /cf priconfig.xml /dq en-US コマンドを実行して priconfig.xml ファイルを作成します。Change directory to the package's root folder, and then create a priconfig.xml file by running the command makepri createconfig /cf priconfig.xml /dq en-US.

  3. コマンド makepri new /pr <PHYSICAL_PATH_TO_FOLDER> /cf <PHYSICAL_PATH_TO_FOLDER>\priconfig.xml を使用して、resources.pri ファイルを作成します。Create the resources.pri file(s) by using the command makepri new /pr <PHYSICAL_PATH_TO_FOLDER> /cf <PHYSICAL_PATH_TO_FOLDER>\priconfig.xml.

    たとえば、アプリケーションのコマンドは次makepri new /pr c:\MYAPP /cf c:\MYAPP\priconfig.xmlのようになります。For example, the command for your application might look like this: makepri new /pr c:\MYAPP /cf c:\MYAPP\priconfig.xml.

  4. 次の手順の説明に従って Windows アプリ パッケージをパッケージ化します。Package your Windows app package by using the instructions in the next step.

Windows アプリ パッケージを生成するGenerate a Windows app package

MakeAppx.exe を使用して、プロジェクトの Windows アプリ パッケージを生成します。Use MakeAppx.exe to generate a Windows app package for your project. このツールは Windows 10 SDK に含まれています。Visual Studio をインストールしている場合は、お使いの Visual Studio バージョンの開発者コマンド プロンプトから簡単にアクセスできます。It's included with the Windows 10 SDK, and if you have Visual Studio installed, it can be easily accessed through the Developer Command Prompt for your Visual Studio version.

MakeAppx.exe ツールを使ったアプリ パッケージの作成」をご覧ください。See Create an app package with the MakeAppx.exe tool

パッケージ アプリを実行するRun the packaged app

アプリケーションを実行してローカルでテストするには、証明書を取得して署名する必要がありません。You can run your application to test it out locally without having to obtain a certificate and sign it. 次の PowerShell コマンドレットを実行するだけで済みます。Just run this PowerShell cmdlet:

Add-AppxPackage –Register AppxManifest.xml

アプリの .exe または .dll ファイルを更新するには、パッケージ内の既存のファイルを新しいファイルに置き換え、AppxManifest.xml のバージョン番号を繰り上げて、上記のコマンドをもう一度実行します。To update your app's .exe or .dll files, replace the existing files in your package with the new ones, increase the version number in AppxManifest.xml, and then run the above command again.

注意

パッケージアプリケーションは常に対話型ユーザーとして実行され、パッケージ化されたアプリケーションをインストールするすべてのドライブは、NTFS 形式でフォーマットする必要があります。A packaged application always runs as an interactive user, and any drive that you install your packaged application on to must be formatted to NTFS format.

次の手順Next steps

質問に対する回答を検索するFind answers to your questions

ご質問がある場合は、Have questions? Stack Overflow でお問い合わせください。Ask us on Stack Overflow. Microsoft のチームでは、これらのチームがこれらのタグをチェックしています。こちらから質問することもできます。Our team monitors these tags.You can also ask us here.

フィードバックの提供または機能に関する提案Give feedback or make feature suggestions

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

コードのステップ実行/問題の検出と修正Step through code / find and fix issues

パッケージデスクトップアプリケーションの実行、デバッグ、およびテスト」を参照してください。See Run, debug, and test a packaged desktop application

アプリケーションに署名して配布するSign your application and then distribute it

パッケージデスクトップアプリケーションを配布する」を参照してください。See Distribute a packaged desktop application