使用套件支援架構執行腳本來建立應用程式快捷方式

本檔將說明如何使用套件支援架構 (.PSF) 來建立應用程式快捷方式,以透過 MSIX 封裝工具Contoso Expense WPF 應用程式執行腳本。

contoso 費用

其構想是將套件內可用的應用程式快捷方式,複製到使用者的桌面,透過 .PSF 腳本。

有幾件事要牢記在心:

  1. 只有在絕對必要時才建立快捷方式。 目標是不要雜亂使用者的桌面。
  2. 您必須先安裝 MSIX 應用程式,才能建立快捷方式,讓我們可以在建立快捷方式期間指定 MSIX 應用程式路徑。
  3. 在此同時,MSIX 應用程式路徑可能會變更,但在安裝資料夾中指定的版本號碼。 Contoso 費用 安裝路徑範例:

C:\Program Files\WindowsApps\ ContosoExpenses_ 1.0.0.0 _x86__3z09h3y28h0qg

若要避免每次更新應用程式時必須變更應用程式快捷方式,請指向 AppExecutionAlias來建立快捷方式。 AppExecutionAlias 可讓它使用應用程式資訊清單的別名會話中定義的值來啟動應用程式,因此不需要指定完整的應用程式路徑。 因此,在建立快捷方式之前,請在應用程式資訊清單中定義別名。 否則,Windows 檔案總管將無法辨識別名,也不會讓我們建立快捷方式。

建立應用程式別名

按一下 [ 封裝資訊 ] 功能表項目,然後按一下 UI 底部的 [ 開啟 檔案],以編輯應用程式資訊清單:

開啟 msix 資訊清單

包含下列命名空間,將用來建立別名,如下所示:

xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3" xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10" 

IgnorableNamespaces 元素中包含值 uap3desktop

IgnorableNamespaces="uap uap3 desktop rescap build"

</uap: v s> 元素之後包含應用程式的執行別名:

  <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 腳本自動進行。

appdata 快捷方式

現在,您可以將快捷方式圖示變更為% localappdata% 路徑:

新路徑快速鍵

仍在快速鍵屬性中,請利用並變更 目標 的值,並在 [屬性] 段落 % localappdata% \Microsoft\WindowsApps\contosoexpenses.exe e %localappdata%\Microsoft\WindowsApps 分別 開始

新值快速鍵

現在快速鍵正常運作,下一步是將它新增至套件,並將建立程式自動化。

新增快捷方式

取得 .PSF 檔案

.Psf Github存放庫下載 PSFBinaries.zip

從 github 版本 .psf

將必要的32位或64位檔案解壓縮到套件目錄的根目錄(視您的應用程式為32或64位而定)。 使用下表做為指引。

應用程式可執行檔是 x64 應用程式可執行檔是 x86
PSFLauncher64.exe PSFLauncher32.exe
PSFRuntime64.dll PSFRuntime32.dll

將 .PSF 檔案包含在套件中

透過 MSIX 封裝工具 編輯 Contoso Expense

從 github 編輯的 .psf

按一下 [ 封裝 檔案] 功能表項目,再按一下 [ 封裝 ] 資料夾中的 [right] 按鈕,然後選取 [ 新增 檔案]:

從 github 新增 .psf 檔案的 .psf

因為 ContosoExpense 組建是32位,所以已新增 .PSF 32 位必要的檔案。 您的套件內容現在看起來應該像這樣:

從 github .psf 新增的檔案 .psf

更新 .PSF 的套件資訊清單

按一下 [ 封裝資訊 ] 功能表項目,然後按一下 UI 底部的 [ 開啟 檔案],以編輯應用程式資訊清單:

從 github 編輯資訊清單 .psf

在此步驟中,您必須變更 PSFLauncher32.exe) (ContosoExpenses\ContosoExpenses.exe 應用程式進入點。

 <Application Id="App" Executable="PSFLauncher32.exe" EntryPoint="Windows.FullTrustApplication">

儲存關閉 資訊清單檔。

在檔案上建立 config.js

切換回 MSIX 封裝工具、按一下 [ 封裝 檔案]、選取 [套件] 資料夾,然後在檔案上新增具有下列內容的新 config.js。

{
  "applications": [
    {
      "id": "App",
      "executable": "ContosoExpenses\\ContosoExpenses.exe",
      "workingDirectory": "ContosoExpenses\\",
      "startScript":
      {
        "scriptPath": "createshortcut.ps1",
        "runInVirtualEnvironment": false,
        "waitForScriptToFinish": true,
        "showWindow": false,
        "runOnce": true
      }
    }
  ]
}

👀 觀察應用程式識別碼與資訊清單中的相同:

檔案 上的config.js 必須在封裝根目錄中建立,如下所示:

從 github .psf

檔案 上的config.js 會用來指定 createshortcut.ps1 腳本只會在第一個應用程式初始化中執行一次。 當 工作目錄 設定為 ContosoExpenses 時,將會在) 稍後建立 createshortcut.ps1 腳本 (,而從 .psf 檔案 (的 StartingScriptWrapper.ps1 腳本必須新增至 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 費用 」快速鍵複製到使用者桌面。 第二個指令會將 contoso. 圖示複製到 MSIX APPDATA 資料夾 (%localappdata%\Packages\ ContosoExpenses_3z09h3y28h0qg \LocalCache\Roaming ) 。

下一步是將下列檔案複製到套件的 ContosoExpenses 資料夾:

  • Contoso 費用 .lnk
  • Contoso .ico
  • StartingScriptWrapper.ps1
  • createshortcut.ps1

最後一個步驟是 建立安裝 新版本的應用程式套件。 在 第一個應用程式初始化 期間, createshortcut.ps1 腳本將會執行,並會在使用者桌面上建立 Contoso Expense 快速鍵