Membuat pintasan aplikasi dengan menjalankan skrip menggunakan Kerangka Kerja Dukungan Paket

Dokumen ini akan menunjukkan kepada Anda cara membuat pintasan aplikasi menggunakan Package Support Framework (PSF) yang menjalankan skrip melalui MSIX Packaging Tool dan aplikasi Contoso Expense WPF.

contoso expenses

Idenya adalah menyalin pintasan aplikasi, yang akan tersedia di dalam paket, ke Desktop pengguna melalui skrip PSF.

Ada beberapa hal yang perlu diingat:

  1. Hanya buat pintasan jika benar-benar diperlukan. Tujuannya adalah untuk tidak mengacaukan desktop pengguna.
  2. Aplikasi MSIX harus diinstal sebelum membuat pintasan, sehingga kita dapat menentukan jalur aplikasi MSIX selama pembuatan pintasan.
  3. Pada saat yang sama, jalur aplikasi MSIX dapat berubah, setelah memiliki nomor versi yang ditentukan dalam folder penginstalan. Contoh jalur penginstalan Pengeluaran Contoso :

C:\Program Files\WindowsApps\ContosoExpenses_1.0.0.0_x86__3z09h3y28h0qg

Untuk menghindari harus mengubah pintasan aplikasi setiap kali aplikasi diperbarui, buat pintasan dengan mengarahkan ke AppExecutionAlias. AppExecutionAlias memungkinkannya meluncurkan aplikasi dengan nilai yang ditentukan dalam sesi alias manifes aplikasi, sehingga tidak perlu menentukan jalur aplikasi lengkap. Oleh karena itu, sebelum membuat pintasan, tentukan alias dalam manifes aplikasi. Jika tidak, Windows Explorer tidak akan mengenali alias dan tidak akan memungkinkan kami untuk membuat pintasan.

Membuat alias aplikasi

Klik item menu Informasi paket dan klik Buka File, tersedia di bagian bawah UI, untuk mengedit manifes aplikasi:

open msix manifest

Sertakan namespace berikut, yang akan digunakan untuk membuat alias, sebagai berikut:

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

Sertakan nilai uap3 dan desktop dalam elemen IgnorableNamespaces :

IgnorableNamespaces="uap uap3 desktop rescap build"

Sertakan alias eksekusi aplikasi setelah <elemen /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>

Mengikuti manifes dengan modifikasi:

create alias

Simpan dan tutup file manifes.

Beralih kembali ke MSIX Packaging Tool dan buat paket baru. Setelah paket dibuat, instal paket dan mulai aplikasi melalui alias, misalnya, dengan menekan Win+R dan mengetik contosoexpenses:

launch using alias

Sekarang setelah alias dibuat, dimungkinkan untuk melanjutkan ke langkah berikutnya.

Membuat pintasan aplikasi

Buat pintasan aplikasi baru di folder preferensi Anda menggunakan alias contosoexpenses.exe, sebagai berikut:

new app shortcut

Beri nama pintasan untuk Pengeluaran Contoso:

new app finish creating shortcut

Secara default, pintasan akan menjadi ikon generik:

generic app shortcut

Mengubah pintasan sangat mudah tetapi tantangannya adalah menghindari penggunaan jalur aplikasi lengkap yang memiliki nomor versi dan yang dapat berubah dalam pembaruan di masa mendatang. Salah satu cara untuk menyelesaikan ini, adalah dengan menyalin ikon dari paket ke %appdata% yang digunakan oleh aplikasi MSIX, yaitu folder %localappdata%\Packages\ContosoExpenses_3z09h3y28h0qg\LocalCache\Roaming_ yang tidak memiliki nomor versi.

Untuk mengubah pintasan aplikasi, untuk saat ini, diperlukan untuk menyalin ikon secara manual ke folder tersebut. Ini akan diotomatisasi nanti menggunakan skrip PSF.

appdata shortcut

Sekarang, dimungkinkan untuk mengubah ikon pintasan ke jalur %localappdata%:

new path shortcut

Masih di properti pintasan, manfaatkan dan ubah nilai target dan mulai di properti para %localappdata%\Microsoft\WindowsApps\contosoexpenses.exe e %localappdata%\Microsoft\WindowsApps masing-masing:

new values shortcut

Sekarang setelah pintasan berfungsi, langkah selanjutnya adalah menambahkannya ke paket dan mengotomatiskan proses pembuatan.

new shortcut

Mendapatkan file PSF

Unduh PSFBinaries.zip dari repositori PSF Github.

psf from github releases

Ekstrak file 32-bit atau 64-bit yang diperlukan ke akar direktori paket Anda, tergantung apakah aplikasi Anda adalah 32 atau 64-bit. Gunakan tabel berikut sebagai panduan.

Aplikasi yang dapat dieksekusi adalah x64 Aplikasi yang dapat dieksekusi adalah x86
PSFLauncher64.exe PSFLauncher32.exe
PSFRuntime64.dll PSFRuntime32.dll

Sertakan file PSF dalam paket

Edit Contoso Expense melalui MSIX Packaging Tool :

psf from github edit mpt

Klik item menu File Paket , klik dengan tombol kanan pada folder Paket dan pilih Tambahkan File... :

psf from github add psf files

Karena build ContosoExpense di sini adalah 32-bit, itu ditambahkan file yang diperlukan PSF 32-bit. Konten paket Anda sekarang akan terlihat seperti ini:

psf from github psf added files

Memperbarui manifes paket untuk PSF

Klik item menu Informasi paket dan klik Buka File, tersedia di bagian bawah UI, untuk mengedit manifes aplikasi:

psf from github edit manifest

Dalam langkah ini, perlu untuk mengubah titik entri aplikasi (ContosoExpenses\ContosoExpenses.exe) oleh PSFLauncher32.exe.

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

Simpan dan tutup file manifes.

Membuat file config.json

Beralih kembali ke MSIX Packaging Tool, klik File paket, pilih folder Paket dan tambahkan file config.json baru dengan konten berikut.

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

👀 Amati bahwa id aplikasi sama dari manifes:

File config.json harus dibuat di akar paket, sebagai berikut:

psf from github

File config.json sedang digunakan untuk menentukan bahwa skrip createshortcut.ps1 harus berjalan hanya sekali dalam inisialisasi aplikasi pertama. Karena direktori kerja diatur ke ContosoExpenses, skrip createshortcut.ps1 (yang akan dibuat nanti) dan skrip StartingScriptWrapper.ps1 (dari file PSF) harus ditambahkan ke folder ContosoExpenses .

Membuat skrip PowerShell

Buat skrip createshortcut.ps1 dengan konten berikut:

Copy-Item "Contoso Expenses.lnk" "$env:USERPROFILE\desktop\Contoso Expenses.lnk"

Copy-Item "contoso.ico" $env:APPDATA\contoso.ico

Skrip createshortcut.ps1 akan menyalin pintasan "Contoso Expenses.lnk" , yang dibuat sebelumnya dan yang akan tersedia di dalam paket, ke desktop pengguna. Instruksi kedua, menyalin contoso.icon ke folder MSIX APPDATA (%localappdata%\Packages\ContosoExpenses_3z09h3y28h0qg\LocalCache\Roaming).

Langkah selanjutnya adalah menyalin file berikut ke folder ContosoExpenses dari paket:

  • Contoso Expenses.lnk
  • Contoso.ico
  • StartingScriptWrapper.ps1
  • createshortcut.ps1

Terakhir, langkah terakhir adalah membuat dan menginstal versi baru paket aplikasi. Selama inisialisasi aplikasi pertama, skrip createshortcut.ps1 akan berjalan dan akan membuat pintasan Pengeluaran Contoso di Desktop pengguna.