このドキュメントでは、 MSIX パッケージ ツール と Contoso Expense WPF アプリケーションを使用してスクリプトを実行するパッケージ サポート フレームワーク (PSF) を使用してアプリケーション ショートカットを作成する方法について説明します。
考え方は、PSF スクリプトを使用して、パッケージ内で使用できるアプリケーション ショートカットをユーザーのデスクトップにコピーすることです。
留意すべき点がいくつかあります。
- ショートカットが絶対に必要な場合にのみ、ショートカットを作成します。 目標は、ユーザーのデスクトップを乱雑にしないことです。
- ショートカットの作成時に MSIX アプリケーション パスを指定できるように、ショートカットを作成する前に MSIX アプリケーションをインストールする必要があります。
- 同時に、MSIX アプリケーション パスは、インストール フォルダーに指定されたバージョン番号を取得すると変更される可能性があります。 Contoso Expenses のインストール パスの例:
C:\Program Files\WindowsApps\ContosoExpenses_1.0.0.0
_x86__3z09h3y28h0qg
アプリケーションが更新されるたびにアプリケーションショートカットを変更する必要を回避するには、 AppExecutionAlias をポイントしてショートカットを作成します。 AppExecutionAlias を使用すると、アプリケーション マニフェストのエイリアス セッションで定義された値を使用してアプリケーションを起動できるため、完全なアプリケーション パスを指定する必要はありません。 そのため、ショートカットを作成する前に、アプリケーション マニフェストでエイリアスを定義します。 それ以外の場合、Windows エクスプローラーはエイリアスを認識せず、ショートカットを作成できません。
アプリケーションエイリアスを作成する
[ パッケージ情報 ] メニュー項目をクリックし、UI の下部にある [ ファイルを開く] をクリックして、アプリケーション マニフェストを編集します。
エイリアスの作成に使用される名前空間を次のように含めてください。
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3" xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
値 uap3 と desktopを IgnorableNamespaces 要素に含めます。
IgnorableNamespaces="uap uap3 desktop rescap build"
</uap:VisualElements> 要素の後にアプリケーションの実行エイリアスを含めます。
<Extensions>
<uap3:Extension Category="windows.appExecutionAlias"
Executable="ContosoExpenses\ContosoExpenses.exe"
EntryPoint="Windows.FullTrustApplication">
<uap3:AppExecutionAlias>
<desktop:ExecutionAlias Alias="contosoexpenses.exe" />
</uap3:AppExecutionAlias>
</uap3:Extension>
</Extensions>
マニフェストに従って変更を加えます。
マニフェスト ファイルを保存して閉じます。
MSIX パッケージ ツールに戻り、 新しいパッケージを生成します。 パッケージが作成されたら、 パッケージをインストール し、エイリアスを使用してアプリケーションを起動します。たとえば、Win + R キーを押して contosoexpenses と入力します。
エイリアスが作成されたので、次の手順に進むことができます。
アプリケーション ショートカットを作成する
次のように、エイリアス contosoexpenses.exeを使用して、ユーザー設定のフォルダーに新しいアプリケーション ショートカットを作成します。
Contoso Expenses のショートカットに名前を付けます。
既定では、ショートカットは汎用アイコンになります。
ショートカットの変更は簡単ですが、ここでの課題は、バージョン番号を持ち、将来の更新で変更される可能性がある完全なアプリケーション パスを使用しないようにすることです。 これを解決する 1 つの方法は、パッケージから MSIX アプリケーションで使用される %appdata% にアイコンをコピーすることです。つまり、バージョン番号のない %localappdata%\Packages\ContosoExpenses_3z09h3y28h0qg\LocalCache\Roaming_ フォルダーです。
ここでは、アプリケーションのショートカットを変更するには、アイコンをそのフォルダーに手動でコピーする必要があります。 これは後で PSF スクリプトを使用して自動化されます。
これで、ショートカット アイコンを %localappdata% パスに変更できるようになりました。
引き続きショートカット プロパティを使用して、target と start in の値をそれぞれ %localappdata%\Microsoft\WindowsApps\contosoexpenses.exe と %localappdata%\Microsoft\WindowsApps に変更します。
ショートカットが機能するようになりました。次の手順は、パッケージに追加し、作成プロセスを自動化することです。
PSF ファイルを取得する
PSF Github リポジトリから PSFBinaries.zip をダウンロードします。
アプリケーションが 32 ビットまたは 64 ビットかどうかに応じて、必要な 32 ビットまたは 64 ビットのファイルをパッケージ ディレクトリのルートに抽出します。 ガイドとして次の表を使用します。
アプリケーション実行可能ファイルは x64 です | アプリケーション実行可能ファイルは x86 です |
---|---|
PSFLauncher64.exe | PSFLauncher32.exe |
PSFRuntime64.dll | PSFRuntime32.dll |
パッケージに PSF ファイルを含める
MSIX パッケージ 化ツールを使用して Contoso Expense を編集します。
[ パッケージ ファイル ] メニュー項目をクリックし、[ パッケージ ] フォルダーの右ボタンをクリックし、[ファイルの追加] を選択します。 ..:
ここでの ContosoExpense ビルドは 32 ビットであるため、PSF 32 ビットの必須ファイルが追加されました。 パッケージのコンテンツは次のようになります。
PSF のパッケージ マニフェストを更新する
[ パッケージ情報 ] メニュー項目をクリックし、UI の下部にある [ ファイルを開く] をクリックして、アプリケーション マニフェストを編集します。
この手順では、アプリケーション エントリ ポイント (ContosoExpenses\ContosoExpenses.exe) by the PSFLauncher32.exeを変更する必要があります。
<Application Id="App" Executable="PSFLauncher32.exe" EntryPoint="Windows.FullTrustApplication">
マニフェスト ファイルを保存して閉じます。
config.json ファイルを作成する
MSIX パッケージ ツールに戻り、[パッケージ ファイル] をクリックし、[パッケージ] フォルダーを選択し、次の内容の新しい config.json ファイルを追加します。
{
"applications": [
{
"id": "App",
"executable": "ContosoExpenses\\ContosoExpenses.exe",
"workingDirectory": "ContosoExpenses\\",
"startScript":
{
"scriptPath": "createshortcut.ps1",
"runInVirtualEnvironment": false,
"waitForScriptToFinish": true,
"showWindow": false,
"runOnce": true
}
}
]
}
👀 アプリケーション ID がマニフェストと同じであることを確認します。
config.json ファイルは、次のようにパッケージ ルートに作成する必要があります。
config.json ファイルは、createshortcut.ps1スクリプトが最初のアプリケーションの初期化で 1 回だけ実行されるように指定するために使用されています。 作業ディレクトリが ContosoExpenses に設定されているため、(後で作成される) createshortcut.ps1 スクリプトと StartingScriptWrapper.ps1 スクリプト (PSF ファイルから) を ContosoExpenses フォルダーに追加する必要があります。
PowerShell スクリプトを作成する
次の内容で createshortcut.ps1 スクリプトを作成します。
Copy-Item "Contoso Expenses.lnk" "$env:USERPROFILE\desktop\Contoso Expenses.lnk"
Copy-Item "contoso.ico" $env:APPDATA\contoso.ico
createshortcut.ps1 スクリプトは、以前に作成した "Contoso Expenses.lnk" ショートカットをコピーし、パッケージ内で使用できるユーザー デスクトップにコピーします。 2 番目の手順では、contoso.icon を MSIX APPDATA フォルダー (%localappdata%\Packages\ContosoExpenses_3z09h3y28h0qg\LocalCache\Roaming) にコピーします。
次の手順では、次のファイルをパッケージの ContosoExpenses フォルダーにコピーします。
- Contoso Expenses.lnk
- Contoso.ico
- StartingScriptWrapper.ps1
- createshortcut.ps1
最後に、アプリケーション パッケージの新しいバージョンを 作成 して インストール します。 最初の アプリケーションの初期化中に、 createshortcut.ps1 スクリプトが実行され、ユーザー Desktop に Contoso Expense ショートカット が作成されます。