共用方式為


封裝指令清單架構中的宏

宏是動態評估的指令清單值。 您可以在封裝指令清單架構中某些屬性的值中使用宏。 這類屬性的範例包括 uap11:CurrentDirectoryPathuap11:Parameters

Syntax

宏是以 格式 $(macro_name)表示。

  • 該語法會展開至下方 [ 展開至] 數據行中的值。
  • 針對屬性值中的單 $ 一字元,請使用逸出序列 $$
巨集名稱 展開至
env:environmentvariable GetEnvironmentVariable (environmentvariable)
package.currentDirectoryPath GetCurrentDirectory ()
package.effectiveExternalPath GetPackagePathByFullName2 (...PackagePathType_EffectiveExternal...)
package.effectivePath GetPackagePathByFullName2 (...PackagePathType_Effective...)
package.installedPath GetPackagePathByFullName2 (...PackagePathType_Install...)
package.machineExternalPath GetPackagePathByFullName2 (...PackagePathType_MachineExternal...)
package.mutablePath GetPackagePathByFullName2 (...PackagePathType_Mutable...)
package.userExternalPath GetPackagePathByFullName2 (...PackagePathType_UserExternal...)
system.path GetSystemDirectory ()
windows.path GetWindowsDirectory ()

範例案例

在此假設的範例案例中,我建立了封裝的應用程式, (以名為 MyPackagedPythonApp.py的 Python) 撰寫。 若要執行它,我需要指令清單中的下列專案:

<Application...Executable="python.exe" uap10:TrustLevel="mediumIL" uap10:RuntimeBehavior="packagedClassicApp" uap10:Parameters="-m MyPackagedPythonApp.py --default=1">

該組態會導致此命令執行:

"C:\Program Files\WindowsApps\MyApp_1.2.3.4_x64__1234567890abc\python.exe" -m MyPackagedPythonApp.py --default=1

但是,如果目前的資料夾不是 C:\Program Files\WindowsApps\MyApp_1.2.3.4_x64__1234567890abc,則此命令會失敗。

因此,我可能會嘗試以絕對檔名指定我的 .py 檔案,如下所示:

"C:\Program Files\WindowsApps\MyApp_1.2.3.4_x64__1234567890abc\python.exe" -m "C:\Program Files\WindowsApps\MyApp_1.2.3.4_x64__1234567890abc\MyPackagedPythonApp.py" --default=1

但身為開發人員, 我不知道套件是否會 安裝到該路徑。 可能是使用者的磁碟驅動器已滿,因此套件最終會在磁碟驅動器 Q 上結束。每次我增加套件版本時,路徑都會變更。 因此,這是宏前往救援的位置。

我針對路徑 (使用宏來指定檔案 .py ,此路徑會在運行時間) 評估為封裝的位置,如下所示:

<Application...Executable="python.exe" uap10:TrustLevel="mediumIL" uap10:RuntimeBehavior="packagedClassicApp" uap10:Parameters="-m $(package.effectivePath)\MyPackagedPythonApp.py --defcon=1">

現在,在運行時間,命令會如預期般執行。 但 Windows 在運行時間) 再次動態填入正確的路徑 (,如下所示:

"C:\Program Files\WindowsApps\MyApp_1.2.3.4_x64__1234567890abc\python.exe" -m "C:\Program Files\WindowsApps\MyApp_1.2.3.4_x64__1234567890abc\MyPackagedPythonApp.py" --default=1