訓練
學習路徑
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
本檔將說明如何使用套件支援架構 (PSF) 建立應用程式快捷方式,以透過 MSIX 封裝工具和 Contoso Expense WPF 應用程式執行腳本。
其概念是透過 PSF 腳本,將套件內可用的應用程式快捷方式複製到使用者的 Desktop。
有幾件事要記住:
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"
在 IgnorableNamespaces 元素中包含 uap3 和 desktop 值 :
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 費用的快捷方式命名為:
根據預設,快捷方式會是一般圖示:
變更快捷方式很簡單,但這裡的挑戰是避免使用具有版本號碼且未來更新可能會變更的完整應用程式路徑。 解決此問題的其中一個方法是將圖示從套件複製到 MSIX 應用程式所使用的 %appdata%,也就是 沒有版本號碼的 %localappdata%\Packages\ContosoExpenses_3z09h3y28h0qg\LocalCache\Roaming_ 資料夾。
若要變更應用程式快捷方式,現在需要手動將圖示複製到該資料夾。 稍後會使用 PSF 腳本來自動化。
現在,可以將快捷方式圖示變更為 %localappdata% 路徑:
仍在快捷方式屬性中,請利用並變更目標的值 ,並從 屬性參數 %localappdata%\Microsoft\WindowsApps\contosoexpenses.exe e %localappdata%\Microsoft\WindowsApps 分別開始 :
現在快捷方式運作正常,下一個步驟是將它新增至套件,並將建立程式自動化。
從 PSF Github 存放庫 下載 PSFBinaries.zip 。
根據您的應用程式是否為 32 位或 64 位,將所需的 32 位或 64 位檔案解壓縮到套件目錄的根目錄。 使用下列資料表作為指南。
應用程式可執行檔為 x64 | 應用程式可執行檔為 x86 |
---|---|
PSFLauncher64.exe | PSFLauncher32.exe |
PSFRuntime64.dll | PSFRuntime32.dll |
透過 MSIX 封裝工具 編輯 Contoso Expense :
按一下 [ 套件檔案 ] 功能表項目,按一下 [套件 ] 資料夾的 右按鈕,然後選取 [ 新增檔案... ] :
由於這裡的 ContosoExpense 組建是 32 位,因此已新增 PSF 32 位所需的檔案。 您的套件內容現在看起來應該像這樣:
按一下 [ 套件資訊] 功能表項目,然後按一下 UI 底部可用的 [開啟檔案 ],以編輯應用程式資訊清單:
在此步驟中,必須變更 PSFLauncher32.exe 的應用程式進入點 (ContosoExpenses\ContosoExpenses.exe)。
<Application Id="App" Executable="PSFLauncher32.exe" EntryPoint="Windows.FullTrustApplication">
儲存 並 關閉 資訊清單檔案。
切換回 MSIX 封裝工具 ,按一下 [封裝檔案 ],選取 [套件] 資料夾,然後新增含有下列內容的 config.json 檔案。
{
"applications": [
{
"id": "App",
"executable": "ContosoExpenses\\ContosoExpenses.exe",
"workingDirectory": "ContosoExpenses\\",
"startScript":
{
"scriptPath": "createshortcut.ps1",
"runInVirtualEnvironment": false,
"waitForScriptToFinish": true,
"showWindow": false,
"runOnce": true
}
}
]
}
👀 請注意,應用程式識別碼與資訊清單相同:
必須在套件根目錄中建立 config.json 檔案,如下所示:
config.json 檔案正用來指定 createshortcut.ps1 腳本應該只在第一個應用程式初始化中執行一次。 當工作目錄 設定為 ContosoExpenses 時, createshortcut.ps1 腳本(稍後將會建立)和 StartingScriptWrapper.ps1 腳本(來自 PSF 檔案)必須新增至 ContosoExpenses 資料夾。
使用下列內容建立 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」 快捷方式複製到使用者桌面,並在套件內提供。 第二個指令會將 contoso.icon 複製到 MSIX APPDATA 資料夾 (%localappdata%\Packages\ContosoExpenses_3z09h3y28h0qg\LocalCache\Roaming)。
下一個步驟是將下列檔案複製到封裝的 ContosoExpenses 資料夾:
最後,最後一個步驟是 建立 並 安裝 新版本的應用程式套件。 在第 一個應用程式初始化 期間, createshortcut.ps1 腳本將會執行,而且會在使用者桌面中建立 Contoso Expense 快捷方式 。
訓練
學習路徑
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
文件
您可以使用套件支援架構執行腳本,以自訂使用者環境的桌面應用程式。
提供如何使用套件支援架構來修正執行時間工作目錄的指引。
修正防止傳統型應用程式在 MSIX 容器中執行的問題 - MSIX
瞭解及如何使用套件支持架構中的元件來套用修正程式,以在 MSIX 容器中執行。