CustomInstallActions
CustomInstallActions 元素包含要執行哪些自訂安裝動作以及何時執行的所有定義。您只能在 MicrosoftGame.config 檔案中宣告此元素的一個執行個體。它有一個必要的子元素 Folder,這是一個字串,用來指定包含所有自訂動作所需之所有檔案的資料夾。此資料夾可以包含子資料夾。您必須負責確保套件包含任何自訂動作可執行檔的所有相依性,而且這些相依性位於每個可執行檔適當的載入路徑中。當您封裝遊戲時,
makepkg 會將此 CustomInstallActions 元素轉譯為所產生之 appxmanifest.xml 中的 MSIX windows.customInstall 延伸模組,其中對應的元素是 <CustomInstall>,且 Folder 是以屬性表示。您不需要自行撰寫該 <CustomInstall> 形式;在 MicrosoftGame.config 中,Folder 是 CustomInstallActions 的子元素,如本文稍後的遊戲設定檔變更範例所示。您不得將任何主要遊戲可執行檔或其他檔案放入指定的 Folder 中。它明確地僅供自訂安裝檔案使用。
動作類型
自訂安裝延伸模組的三個子節點決定了特定自訂動作的執行時機。自訂安裝動作有三種類型。- 安裝動作: 平台在應用程式首次啟動之前執行的動作
- 修復動作: 使用者選取 [修復] 或 [重設] 時執行的動作
- 解除安裝動作: 使用者解除安裝應用程式時執行的動作
儘管名稱如此,安裝動作並不會在安裝套件時執行。每種動作類型都會在應用程式生命週期中的特定時間點執行,而 InstallAction 會在遊戲首次啟動之前立即執行一次 (這是平台可以顯示必要 UAC 提示的第一個時間點)。「安裝」、「修復」和「解除安裝」指的是動作所屬的生命週期類別,而不是動作執行的時刻。如果您需要在實際安裝/下載套件時執行工作,自訂安裝動作並不是適用的機制。如需完整的順序,請參閱自訂動作使用方式。
只有在已執行安裝或修復動作的情況下,才會執行解除安裝動作。系統會使用 Name 屬性來追蹤此狀態。因此,安裝/修復/解除安裝動作必須具有相同的 Name。
動作的組成部分
File
您必須為每個動作指定要執行的檔案,而且此檔案必須位於您的套件中。如果您指定路徑,該路徑會隱含地相對於您的 CustomInstallActions Folder 路徑。您無法指定絕對路徑。您的路徑不得以反斜線 (\) 開頭。Name
您必須為動作指定 Name。此 Name 在父系 Actions 節點內必須是唯一的,但可以在不同的 Actions 節點之間共用。例如,您可以將 File=“MySetup.exe” 和 Name=“abc123” 同時指定為 InstallAction 和 RepairAction。另一方面,如果您有兩個 InstallAction 元素,它們必須各自具有不同的 Name。只要可執行檔沒有變更,您就應該在各套件版本之間為相同的可執行檔使用相同的 Name。Name 會作為動作的身分識別,讓平台追蹤哪些動作已成功執行,以及更新的套件是否需要執行這些動作。如果更新的套件指定了具有已成功執行之 Name 的自訂動作,平台會在更新時略過此動作。引數清單的差異並不構成身分識別的差異。如果您想要在更新的套件中使用不同的引數執行相同的可執行檔,就必須提供不同的 Name。您必須負責適當設定所宣告的 Name,並在各版本之間追蹤它們。
Arguments
每個自訂安裝動作都有第三個元素 argument,可讓您加入執行可轉散發命令時需要包含的任何引數。自訂動作使用方式
安裝反作弊軟體通常需要使用者具有系統管理員權限,而且一般而言 (由於自訂動作是極為強大的功能),平台會要求任何具有自訂動作的套件都需要系統管理員權限。對於以系統管理員權限執行的作業,Windows 會要求在首次執行應用程式時顯示使用者帳戶控制 (UAC) 提示。使用者工作流程如下。- 遊戲的 Microsoft Store 頁面包含需求的說明,包括安裝是否需要提高權限、安裝是否會執行自訂動作,以及這對使用者可能代表的意義。提供此資訊是為了讓使用者在購買遊戲時能做出明智的決定。
- 假設使用者接受這些限制和影響,他們會選取 [安裝]。
- 平台會偵測到套件包含自訂動作,並記錄需要執行自訂動作的事實。不過,平台不會在初始安裝階段執行自訂動作。相反地,任何自訂動作都會在使用者首次啟動遊戲時執行。
- 首次啟動遊戲時,在平台即將執行自訂動作的時間點,會顯示 UAC 提示。使用者接著需要提供系統管理員認證並接受提高權限。即使套件包含多個自訂動作,也只會向使用者顯示一次 UAC 提示。除非一或多個自訂動作已變更,否則更新時不會再出現 UAC 提示。解除安裝遊戲時會出現 UAC 提示。
自訂安裝動作僅在主要 MSIXVC 套件內受到支援。架構套件、選用套件、修改套件或任何其他類型的套件都不支援自訂安裝動作。
自訂安裝、修復和解除安裝動作是由零售版 Microsoft Store 部署管線執行。當您為了開發而在本機安裝套件時,這些動作不會執行;例如,當您使用
wdApp install 安裝鬆散的 .msixvc,或使用 Add-AppxPackage 註冊套件時。本機開發安裝仍可讓您驗證套件是否正確宣告了這些動作 (它們會以 windows.customInstall 延伸模組的形式出現在所產生的 appxmanifest.xml 中),但在該路徑上不會叫用自訂動作可執行檔本身。若要端對端驗證動作的執行,請透過 Store 或沙箱流程安裝遊戲。