Bagikan melalui


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.

pengeluaran contoso

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 path pemasangan Contoso Expenses:

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

Untuk menghindari harus mengubah pintasan aplikasi setiap kali aplikasi diperbarui, buat pintasan dengan menunjuk 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:

buka manifes msix

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:

buat 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:

peluncuran menggunakan 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:

pintasan aplikasi baru

Beri nama pintasan untuk Pengeluaran Contoso:

aplikasi baru selesai membuat pintasan

Secara default, pintasan akan menjadi ikon generik:

pintasan aplikasi generik

Mengubah pintasan sangat mudah tetapi tantangannya di sini adalah menghindari penggunaan jalur aplikasi lengkap yang memiliki nomor versi dan yang dapat berubah dalam pembaruan di masa mendatang. Salah satu cara untuk mengatasinya, adalah 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.

pintasan appdata

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

pintasan jalur baru

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

pintasan nilai baru

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

pintasan baru

Dapatkan file PSF

Unduh PSFBinaries.zip dari repositori Github PSF.

psf dari Github Releases

Ekstrak file 32-bit atau 64-bit yang diperlukan ke akar direktori paket Anda, tergantung apakah aplikasi Anda 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 dari github edit mpt

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

psf dari github tambahkan file psf

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

psf dari github psf menambahkan file

Memperbarui manifes paket untuk PSF

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

psf dari manifes edit github

Dalam langkah ini, perlu untuk mengubah titik masuk aplikasi (ContosoExpenses\ContosoExpenses.exe) by the 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 dari github

File config.json sedang digunakan untuk menentukan bahwa skrip createshortcut.ps1 harus berjalan hanya sekali dalam inisialisasi aplikasi pertama. Saat 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 Contoso Expense di Desktop pengguna.