コマンド ライン変換用のテンプレート ファイルを生成する方法
MSIX パッケージ作成ツールを使用すると、対話型 UI またはコマンド ライン オプションの 2 つの方法で変換を実行できます。 コマンド ラインを使用する場合は、変換が特定の設定とニーズに対応するようにテンプレート ファイルを指定する必要があります。 この記事では、自分に合ったテンプレート ファイルを生成するプロセスについて説明します。
自分に合ったテンプレート ファイルを取得するには、次の 2 つの方法があります。
- MSIX パッケージ作成ツールの UI を使用できます。 ツールの設定で、作成する MSIX パッケージごとに変換テンプレート ファイルを生成することを指定できます。
- サンプル テンプレートを使用して、変換ごとに必要な構成を手動で入力できます。
MSIX パッケージ作成ツールから変換テンプレート ファイルを生成する
- MSIX パッケージ作成ツールを起動します。
- アプリケーションの右上隅にある設定に移動します。
- [各パッケージでコマンド ライン ファイルを生成する] オプションが選択されている必要があります。
- 必要な設定 (除外項目、終了コードなど) に対するその他の変更または修正を行います。
- 設定を保存します
- インストーラーを使用してアプリケーション パッケージ ワークフローを実行します。
- インストーラーを選択しないと、変換テンプレート ファイルを生成できません。
- exe を使用している場合は、変換テンプレート ファイルを生成するために、インストーラーにサイレント フラグを渡す必要があります。
- 変換が終了すると、選択したインストーラーに基づいてテンプレート ファイルが構成され、現在の設定を今後の変換に再使用できるようになります。
- 既定では、変換テンプレート ファイルは MSIX パッケージと同じ場所に保存されますが、[パッケージの作成] ページで、テンプレート ファイルを保存するための別の場所を指定できます。
- 各変換の最後にどのような MSIX を出力したいかに基づいて、いくつかの変更を加える必要があります。
変換テンプレート ファイルを手動で編集する
変換テンプレート ファイルのテンプレート パラメーターを手動で編集して、自分に合ったテンプレート ファイルを生成できます。 変換テンプレート ファイルを生成する場合は、テンプレート ファイルにどの機能を追加するかに注意してください。一部の機能では、動作するために追加のスキーマ参照が必要な場合があります。
変換テンプレートのパラメーター リファレンス
変換テンプレート ファイルで使用できるパラメーターの全一覧を次に示します。
ConversionSettings | 説明 |
---|---|
Settings:: AllowTelemetry | [省略可能] このツールの呼び出しについてのテレメトリ ログを有効にします。 |
Settings:: ApplyAllPrepareComputerFixes | [省略可能] 準備コンピューターの推奨される修正プログラムをすべて適用します。 その他の属性が使用される場合は設定できません。 |
Settings:: GenerateCommandLineFile | [省略可能] 将来使用するために、テンプレート ファイルの入力を SaveLocation ディレクトリにコピーします。 |
Settings:: AllowPromptForPassword | [省略可能] 仮想マシン用および署名証明書用のパスワードが必須かつ未指定の場合、その入力をユーザーに求めるようツールに指示します。 |
Settings:: EnforceMicrosoftStoreVersioningRequirements | [省略可能] Microsoft Store およびビジネス向け Microsoft Store からの展開に必要なパッケージ バージョン管理スキームを適用するようツールに指示します。 |
Settings:: ServerPortNumber | [省略可能] リモート コンピューターに接続するときに使用されます。 テンプレート スキーマの v2 が必要です。 |
Settings:: AddPackageIntegrity | [省略可能] 生成された MSIX ごとにパッケージの整合性を追加します。 テンプレート スキーマの v5 が必要です。 |
ValidInstallerExitCodes | [省略可能] 0 個以上の ValidInstallerExitCode 要素。 テンプレート スキーマの v2 が必要です。 |
ValidInstallerExitCodes:: ValidInstallerExitCode | [省略可能] ツールにとってなじみのない、または再起動が必要になる可能性があるインストーラーの終了コードを指定します。 テンプレート スキーマの v2 が必要です。 |
ValidInstallerExitCodes:: ValidInstallerExitCode:: Reboot | [省略可能] 変換中に終了コードで再起動をトリガーするかどうかを指定します。 テンプレート スキーマの v3 が必要です。 |
ExclusionItems | [省略可能] 0 個以上の FileExclusion または RegistryExclusion 要素。 FileExclusion 要素はすべて、RegistryExclusion 要素の前に表示されている必要があります。 |
ExclusionItems::FileExclusion | [省略可能] パッケージ化から除外するファイル。 |
ExclusionItems::FileExclusion::ExcludePath | パッケージ化から除外するファイルへのパス。 |
ExclusionItems::RegistryExclusion | [省略可能] パッケージ化から除外するレジストリ キー。 |
ExclusionItems::RegistryExclusion:: ExcludePath | パッケージ化から除外するレジストリへのパス。 |
PrepareComputer::DisableDefragService | [省略可能] アプリの変換中、Windows のデフラグ ツールを無効にします。 false に設定すると、ApplyAllPrepareComputerFixes がオーバーライドされます。 |
PrepareComputer:: DisableWindowsSearchService | [省略可能] アプリの変換中、Windows Search を無効にします。 false に設定すると、ApplyAllPrepareComputerFixes がオーバーライドされます。 |
PrepareComputer:: DisableSmsHostService | [省略可能] アプリの変換中、SMS ホストを無効にします。 false に設定すると、ApplyAllPrepareComputerFixes がオーバーライドされます。 |
PrepareComputer:: DisableWindowsUpdateService | [省略可能] アプリの変換中、Windows Update を無効にします。 false に設定すると、ApplyAllPrepareComputerFixes がオーバーライドされます。 |
SaveLocation | [省略可能] ツールの保存先を指定する要素。 指定しない場合、パッケージは Desktop フォルダーに保存されます。 |
SaveLocation::PackagePath | [省略可能] 結果として得られる MSIX パッケージの保存先のファイルまたはフォルダーへのパス。 |
SaveLocation::TemplatePath | [省略可能] 結果として得られるコマンド ライン テンプレートの保存先のファイルまたはフォルダーへのパス。 |
Installer::Path | アプリケーション インストーラーへのパス。 |
Installer::Arguments | [省略可能] インストーラーに渡す引数。 本ツールによって引数 "/qn /norestart INSTALLSTARTMENUSHORTCUTS=1 DISABLEADVTSHORTCUTS=1" がサイレントで使用され、MSI インストーラーが自動的に実行されます。 注: .exe インストーラーを使用している場合は、インストーラーをサイレントで実行させる引数を渡す必要があります。 |
Installer::InstallLocation | [省略可能] インストール済みのファイルに対応する、アプリケーションのルート フォルダーの完全パス (インストールされている場合)。"C:\Program Files (x86)\MyAppInstalllocation" など。 |
Installer::IsUnattendedInstallWithoutArgument | [省略可能]この属性は、アプリがサイレント引数なしで "無人" インストールを許可する場合に使用する必要があります。 この属性は、.exe インストーラーにのみ使用されます。 |
VirtualMachine | [省略可能] 変換がローカルの仮想マシン上で実行されるよう指定する要素。 |
VirtualMachine::Name | 変換環境として使用される仮想マシンの名前。 |
VirtualMachine::Username | 変換環境として使用される仮想マシンのユーザー名。 |
RemoteMachine | [省略可能] 変換がリモート コンピューター上で実行されるよう指定する要素。 テンプレート スキーマの v2 が必要です。 |
RemoteMachine:: ComputerName | 変換環境として使用されるリモート コンピューターの名前。 テンプレート スキーマの v2 が必要です。 |
RemoteMachine:: Username | 変換環境として使用されるリモート コンピューターのユーザー名。 テンプレート スキーマの v2 が必要です。 |
RemoteMachine:: EnableAutoLogon | [省略可能] これにより、リモート コンピューターで再起動が必要な変換を実行したときに、自動的に再度ログインが行われ、変換がシームレスに続行されます。 テンプレート スキーマの V3 が必要です。 |
PackageInformation::PackageName | MSIX パッケージのパッケージ名。 |
PackageInformation::PackageDisplayName | MSIX パッケージのパッケージ表示名。 |
PackageInformation::PublisherName | MSIX パッケージの発行元。 |
PackageInformation::PublisherDisplayName | MSIX パッケージの発行元表示名。 |
PackageInformation::Version | MSIX パッケージのバージョン番号。 |
PackageInformation::PackageDescription | [省略可能] MSIX パッケージ用の説明。 テンプレート スキーマの v4 が必要です。 |
PackageInformation:: MainPackageNameForModificationPackage | [省略可能] メイン パッケージ名のパッケージ ID 名。 これは、メイン (親) アプリケーションに依存する修正パッケージの作成時に使用されます。 |
SigningInformation | [省略可能] Device Guard の署名の署名情報を指定する要素。 テンプレート スキーマの v4 が必要です。 |
SigningInformation:: DeviceGuardSigning | [省略可能] Device Guard の署名の情報を指定する要素。 テンプレート スキーマの v4 が必要です。 |
DeviceGuardSigning:: TokenFile | JSON 形式の Device Guard の署名には、Azure AD アクセス トークンが必要。 v4 テンプレート スキーマが必要です。 |
DeviceGuardSigning:: TimestampUrl | [省略可能] Device Guard での署名の際にタイムスタンプを提供して、証明書の有効期間を超えてアプリケーションをインストールできるようにします。 テンプレート スキーマの v4 が必要です。 |
アプリケーション | [省略可能] MSIX パッケージでアプリケーション エントリを構成するための 0 個以上のアプリケーション要素。 |
Application::Id | MSIX アプリケーション用のアプリ ID。 この ID は、指定の ExecutableName と一致するアプリケーション エントリが検出された場合に使用されます。 パッケージ内の実行可能ファイルには複数のアプリケーション ID の値を設定できます。 この値はパッケージ内におけるアプリケーションの一意の識別子です。 この値は、パッケージ相対アプリ識別子 (PRAID) とも呼ばれます。 ID はパッケージ内で一意である必要があります (同じパッケージ内では同じ ID は 1 つしか使用できません)。 ただし、ID はグローバルに一意である必要はありません。 システム上には、同じ ID が使用されている別のパッケージが存在してもかまいません。 この文字列には、ピリオドで区切られた英数字フィールドが含まれています。 各フィールドは、ASCII アルファベット文字で始まる必要があります。 以下はフィールドの値として使用できません。"CON"、"PRN"、"AUX"、"NUL"、"COM1"、"COM2"、"COM3"、"COM4"、"COM5"、"COM6"、"COM7"、"COM8"、"COM9"、"LPT1"、"LPT2"、"LPT3"、"LPT4"、"LPT5"、"LPT6"、"LPT7"、"LPT8"、"LPT9"。 |
Application::DisplayName | MSIX パッケージのアプリ表示名。 この表示名は、指定の ExecutableName と一致するアプリケーション エントリが検出された場合に使用されます。 |
Application::ExecutableName | パッケージ マニフェストに追加される MSIX アプリケーションの実行可能ファイル名。 この名前の付いたアプリケーションが検出されない場合、対応するアプリケーション エントリは無視されます。 |
Application::Description | [省略可能] MSIX アプリケーション用のアプリの説明。 使用しない場合は、アプリケーションの表示名が使用されます。 この説明は、指定の ExecutableName と一致するアプリケーション エントリが検出された場合に使用されます。 |
機能 | [省略可能] MSIX パッケージにカスタム機能を追加するための 0 個以上の機能要素。 既定では、変換中に "runFullTrust" 機能が追加されます。 |
Capability::Name | MSIX パッケージに追加する機能。 |
変換テンプレート ファイルのサンプル
<MsixPackagingToolTemplate
xmlns="http://schemas.microsoft.com/appx/msixpackagingtool/template/2018"
xmlns:V2="http://schemas.microsoft.com/msix/msixpackagingtool/template/1904"
xmlns:V3="http://schemas.microsoft.com/msix/msixpackagingtool/template/1907"
xmlns:V4="http://schemas.microsoft.com/msix/msixpackagingtool/template/1910"
xmlns:V5="http://schemas.microsoft.com/msix/msixpackagingtool/template/2001">
<!--Note: You only need to include xmlns:v2 - xmlns:v5 if you are using one of the features that use those schemas -->
<Settings
AllowTelemetry="true"
ApplyAllPrepareComputerFixes="true"
GenerateCommandLineFile="true"
AllowPromptForPassword="false"
EnforceMicrosoftStoreVersioningRequirements="false"
v2:ServerPortNumber="1599"
v5:AddPackageIntegrity="true">
<!--Note: Exclusion items are optional and if declared take precedence over the default tool exclusion items
<ExclusionItems>
<FileExclusion ExcludePath="[{CryptoKeys}]" />
<FileExclusion ExcludePath="[{Common AppData}]\Microsoft\Crypto" />
<FileExclusion ExcludePath="[{Common AppData}]\Microsoft\Search\Data" />
<FileExclusion ExcludePath="[{Cookies}]" />
<FileExclusion ExcludePath="[{History}]" />
<FileExclusion ExcludePath="[{Cache}]" />
<FileExclusion ExcludePath="[{Personal}]" />
<FileExclusion ExcludePath="[{Profile}]\Local Settings" />
<FileExclusion ExcludePath="[{Profile}]\NTUSER.DAT.LOG1" />
<FileExclusion ExcludePath="[{Profile}]\ NTUSER.DAT.LOG2" />
<FileExclusion ExcludePath="[{Recent}]" />
<FileExclusion ExcludePath="[{Windows}]\debug" />
<FileExclusion ExcludePath="[{Windows}]\Logs\CBS" />
<FileExclusion ExcludePath="[{Windows}]\Temp" />
<FileExclusion ExcludePath="[{Windows}]\WinSxS\ManifestCache" />
<FileExclusion ExcludePath="[{Windows}]\WindowsUpdate.log" />
<FileExclusion ExcludePath="[{Windows}]\Installer" />
<FileExclusion ExcludePath="[{AppVPackageDrive}]\$Recycle.Bin " />
<FileExclusion ExcludePath="[{AppVPackageDrive}]\System Volume Information" />
<FileExclusion ExcludePath="[{AppVPackageDrive}]\Config.Msi" />
<FileExclusion ExcludePath="[{AppData}]\Microsoft\AppV" />
<FileExclusion ExcludePath="[{Common AppData}]\Microsoft\Microsoft Security Client" />
<FileExclusion ExcludePath="[{Common AppData}]\Microsoft\Microsoft Antimalware" />
<FileExclusion ExcludePath="[{Common AppData}]\Microsoft\Windows Defender" />
<FileExclusion ExcludePath="[{ProgramFiles}]\Microsoft Security Client" />
<FileExclusion ExcludePath="[{ProgramFiles}]\Windows Defender" />
<FileExclusion ExcludePath="[{ProgramFiles}]\WindowsApps" />
<FileExclusion ExcludePath="[{Local AppData}]\Temp" />
<FileExclusion ExcludePath="[{Local AppData}]\Microsoft\Windows" />
<FileExclusion ExcludePath="[{Local AppData}]\Packages" />
<RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Wow6432Node\Microsoft\Cryptography" />
<RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Microsoft\Cryptography" />
<RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" />
<RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware Setup" />
<RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Microsoft\Microsoft Security Client" />
<RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Policies\Microsoft\Microsoft Antimalware" />
<RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender" />
<RegistryExclusion ExcludePath= "REGISTRY\USER\[{AppVCurrentUserSID}]\Software\Microsoft\Windows\CurrentVersion\Explorer\StreamMRU" />
<RegistryExclusion ExcludePath= "REGISTRY\USER\[{AppVCurrentUserSID}]\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\StreamMRU" />
<RegistryExclusion ExcludePath= "REGISTRY\USER\[{AppVCurrentUserSID}]\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams" />
<RegistryExclusion ExcludePath= "REGISTRY\USER\[{AppVCurrentUserSID}]\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\Streams" />
<RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Microsoft\AppV" />
<RegistryExclusion ExcludePath= "REGISTRY\MACHINE\SOFTWARE\Wow6432Node\Microsoft\AppV" />
<RegistryExclusion ExcludePath= "REGISTRY\USER\[{AppVCurrentUserSID}]\Software\Microsoft\AppV" />
<RegistryExclusion ExcludePath= "REGISTRY\USER\[{AppVCurrentUserSID}]\Software\Wow6432Node\Microsoft\AppV" />
</ExclusionItems>
-->
<!--Note: Specifying an installer exit code will allow you to automatically trigger a reboot during your conversion
<v2:ValidInstallerExitCodes>
<V2:ValidInstallerExitCode ExitCode="3010" V3:Reboot="true"/>
<V2:ValidInstallerExitCode ExitCode="1641"/>
</v2:ValidInstallerExitCodes>
-->
</Settings>
<!--Note: this section takes precedence over the Settings::ApplyAllPrepareComputerFixes attribute and is optional
<PrepareComputer
DisableDefragService="true"
DisableWindowsSearchService="true"
DisableSmsHostService="true"
DisableWindowsUpdateService="true"/>
-->
<SaveLocation
PackagePath="C:\users\user\Desktop\MyPackage.msix"
TemplatePath="C:\users\user\Desktop\MyTemplate.xml" />
<Installer
Path="C:\MyAppInstaller.msi"
InstallLocation="C:\Program Files\MyAppInstallLocation" />
<!--NOTE: This section specifies that the conversion will be run on a local Virtual Machine. This is optional if you want to change your conversion environment from the default local machine.
<VirtualMachine Name="vmname" Username="vmusername"/>
-->
<!--NOTE: This section specifies that the conversion will be run on a remote machine.This is optional if you want to change your conversion environment from the default local machine.
<v2:RemoteMachine ComputerName="vmname" Username="vmusername" v3:EnableAutoLogon="true"/>
-->
<PackageInformation
PackageName="MyAppPackageName"
PackageDisplayName="MyApp Display Name"
PublisherName="CN=MyPublisher"
PublisherDisplayName="MyPublisher Display Name"
Version="1.1.0.0"
MainPackageNameForModificationPackage="MainPackageIdentityName">
<!--Note: This is optional, if you want to sign your package with Device Guard signing
<v4:SigningInformation>
<v4:DeviceGuardSigning
Tokenfile="tokenfile.json"
TimestampUrl="https://mytimestamp.com"/>
</v4:SigningInformation>
-->
<!--NOTE: This ID will be used if the Application entry detected matches the specified ExecutableName
<Applications>
<Application
Id="MyApp1"
Description="MyApp"
DisplayName="My App"
ExecutableName="MyApp.exe"/>
</Applications>
-->
<!--NOTE: This is optional as “runFullTrust” capability is added by default during conversion
<Capabilities>
<Capability Name="runFullTrust" />
</Capabilities>
-->
</PackageInformation>
</MsixPackagingToolTemplate>