Создание ярлыка приложения с помощью скрипта с помощью платформы поддержки пакетов
В этом документе показано, как создать ярлыки приложений с помощью платформы поддержки пакетов (PSF), которые выполняют скрипты с помощью средства упаковки MSIX и приложения Contoso Expense WPF.
Идея заключается в копировании ярлыка приложения, который будет доступен в пакете, на рабочий стол пользователя через скрипты PSF.
Есть несколько вещей, которые следует помнить:
- Создайте ярлык только в том случае, если они являются абсолютно необходимыми. Цель состоит в том, чтобы не загромождать рабочий стол пользователя.
- Перед созданием ярлыка необходимо установить приложение MSIX, чтобы можно было указать путь к приложению MSIX во время создания ярлыка.
- В то же время путь приложения MSIX может измениться после того, как он будет содержать номер версии, указанный в папке установки. Пример пути установки Contoso Expenses :
C:\Program Files\WindowsApps\ContosoExpenses_1.0.0.0
_x86__3z09h3y28h0qg
Чтобы избежать необходимости изменять ярлык приложения при каждом обновлении приложения, создайте ярлык, указывая на AppExecutionAlias. AppExecutionAlias позволяет запускать приложение со значением, определенным в сеансе псевдонима манифеста приложения, поэтому нет необходимости указывать полный путь к приложению. Поэтому перед созданием ярлыка определите псевдоним в манифесте приложения. В противном случае Проводник не распознает псевдоним и не позволит нам создать ярлык.
Создание псевдонима приложения
Щелкните пункт меню "Сведения о пакете" и щелкните "Открыть файл", доступный в нижней части пользовательского интерфейса, чтобы изменить манифест приложения:
Включите следующие пространства имен, которые будут использоваться для создания псевдонима, как показано ниже.
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3" xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
Включите значение uap3 и desktop в элемент IgnorableNamespaces :
IgnorableNamespaces="uap uap3 desktop rescap build"
Включите псевдоним выполнения приложения после <элемента /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>
Следует манифесту с изменениями:
Сохраните и закройте файл манифеста.
Вернитесь к средству упаковки MSIX и создайте новый пакет. После создания пакета установите пакет и запустите приложение с помощью псевдонима, например нажав клавиши Win+R и введя contosoexpenses:
Теперь, когда псевдоним создан, можно перейти к следующим шагам.
Создание ярлыка приложения
Создайте ярлык приложения в папке с выбранным псевдонимом contosoexpenses.exeследующим образом:
Назовите ярлык для Contoso Expenses:
По умолчанию ярлык будет универсальным значком:
Изменение ярлыка является простым, но здесь необходимо избежать использования полного пути к приложению с номером версии, и это может измениться в будущем обновлении. Один из способов решить эту проблему — скопировать значок из пакета в папку %appdata% , используемую приложением MSIX, т. е. папку %localappdata%\Packages\ContosoExpenses_3z09h3y28h0qg\LocalCache\Roaming_ , у которых нет номера версии.
Чтобы изменить ярлык приложения, необходимо вручную скопировать значок в ту папку. Это будет автоматизировано позже с помощью скриптов PSF.
Теперь можно изменить значок ярлыка на путь %localappdata%:
По-прежнему в свойствах ярлыка воспользуйтесь преимуществами и измените значения целевого объекта и запустите его в параметре свойств %localappdata%\Microsoft\WindowsApps\contosoexpenses.exee %localappdata %\Microsoft\WindowsApps соответственно:
Теперь, когда ярлык работает, следующим шагом является добавление его в пакет и автоматизация процесса создания.
Получение файлов PSF
Скачайте PSFBinaries.zip из репозитория GitHub PSF.
Извлеките необходимые 32-разрядные или 64-разрядные файлы в корневой каталог пакета в зависимости от того, является ли приложение 32 или 64-разрядным. Руководствуйтесь следующей таблицей.
Исполняемый файл приложения — x64 | Исполняемый файл приложения — x86 |
---|---|
PSFLauncher64.exe | PSFLauncher32.exe |
PSFRuntime64.dll | PSFRuntime32.dll |
Включение файлов PSF в пакет
Измените расходы Contoso с помощью средства упаковки MSIX :
Щелкните пункт меню "Файлы пакетов ", нажмите правой кнопкой в папке "Пакет" и выберите "Добавить файл...".
Так как сборка ContosoExpense здесь имеет 32-разрядную версию, она была добавлена 32-разрядные файлы PSF. Теперь содержимое пакета должно выглядеть примерно так:
Обновление манифеста пакета для PSF
Щелкните пункт меню "Сведения о пакете" и щелкните "Открыть файл", доступный в нижней части пользовательского интерфейса, чтобы изменить манифест приложения:
На этом шаге необходимо изменить точку входа приложения (ContosoExpenses\ContosoExpenses.exe) на PSFLauncher32.exe.
<Application Id="App" Executable="PSFLauncher32.exe" EntryPoint="Windows.FullTrustApplication">
Сохраните и закройте файл манифеста.
Создание файла config.json
Вернитесь к средству упаковки MSIX, щелкните "Файлы пакетов", выберите папку "Пакет" и добавьте новый файл config.json со следующим содержимым.
{
"applications": [
{
"id": "App",
"executable": "ContosoExpenses\\ContosoExpenses.exe",
"workingDirectory": "ContosoExpenses\\",
"startScript":
{
"scriptPath": "createshortcut.ps1",
"runInVirtualEnvironment": false,
"waitForScriptToFinish": true,
"showWindow": false,
"runOnce": true
}
}
]
}
👀 Обратите внимание, что идентификатор приложения совпадает с идентификатором манифеста:
Файл config.json должен быть создан в корневом каталоге пакета следующим образом:
Файл config.json используется для указания того, что скрипт createshortcut.ps1 должен выполняться только один раз в первой инициализации приложения. Так как рабочий каталог имеет значение ContosoExpenses, в папку ContosoExpenses необходимо добавить скрипт createshortcut.ps1 (который будет создан позже), а скрипт StartingScriptWrapper.ps1 (из файлов PSF) — в папку 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 Expenses.lnk , созданный ранее и который будет доступен в пакете, на рабочий стол пользователя. Вторая инструкция копирует contoso.icon в папку MSIX APPDATA (%localappdata%\Packages\ContosoExpenses_3z09h3y28h0qg\LocalCache\Roaming).
Следующим шагом является копирование следующих файлов в папку ContosoExpenses пакета:
- Contoso Expenses.lnk
- Contoso.ico
- StartingScriptWrapper.ps1
- createshortcut.ps1
Наконец, последним шагом является создание и установка новой версии пакета приложения. Во время первой инициализации приложения будет выполняться скрипт createshortcut.ps1 , и он создаст ярлык Contoso Expense на рабочем столе пользователя.