Создание ярлыка приложения с помощью скрипта с помощью платформы поддержки пакетов
В этом документе показано, как создать ярлыки приложений с помощью платформы поддержки пакетов (PSF), выполняющих скрипты с помощью средства упаковки MSIX и приложения Contoso Expense WPF.
Идея состоит в том, чтобы скопировать ярлык приложения, который будет доступен внутри пакета, на рабочий стол пользователя через скрипты PSF.
Есть несколько вещей, которые следует учитывать:
- Только создайте ярлык, если они абсолютно необходимы. Цель заключается в том, чтобы не загромождать рабочий стол пользователя.
- Приложение MSIX необходимо установить перед созданием ярлыка, чтобы можно было указать путь приложения MSIX во время создания ярлыка.
- В то же время путь приложения MSIX может измениться после того, как он имеет номер версии, указанный в папке установки. Пример пути установки Contoso Expenses:
C:\Program Files\WindowsApps\ContosoExpenses_1.0.0.0
_x86__3z09h3y28h0qg
Чтобы избежать необходимости изменять ярлык приложения при каждом обновлении приложения, создайте ярлык, указывая на AppExecutionAlias. AppExecutionAlias позволяет запускать приложение со значением, определенным в сеансе псевдонима манифеста приложения, поэтому нет необходимости указывать полный путь к приложению. Поэтому перед созданием ярлыка определите псевдоним в манифесте приложения. В противном случае windows Обозреватель не распознает псевдоним, и он не позволит нам создать ярлык.
Создание псевдонима приложения
Щелкните элемент меню "Сведения о пакете" и щелкните "Открыть файл" в нижней части пользовательского интерфейса, чтобы изменить манифест приложения:
Включите следующие пространства имен, которые будут использоваться для создания псевдонима следующим образом:
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.exe e %localappdata%\Microsoft\WindowsApps соответственно:
Теперь, когда ярлык работает, следующий шаг — добавить его в пакет и автоматизировать процесс создания.
Получение файлов PSF
Скачайте PSFBinaries.zip из репозитория PSF Github.
Извлеките необходимые 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 необходимо добавить скрипт createdhortcut.ps1 (который будет создан позже) и скрипт StartingScriptWrapper.ps1 (из файлов PSF).
Создание скрипта PowerShell
Создайте скрипт createhortcut.ps1 со следующим содержимым:
Copy-Item "Contoso Expenses.lnk" "$env:USERPROFILE\desktop\Contoso Expenses.lnk"
Copy-Item "contoso.ico" $env:APPDATA\contoso.ico
Скрипт createdhortcut.ps1 копирует ярлык Contoso Expenses.lnk , созданный ранее и который будет доступен внутри пакета, на рабочий стол пользователя. Вторая инструкция копирует contoso.icon в папку MSIX APPDATA (%localappdata%\Packages\ContosoExpenses_3z09h3y28h0qg\LocalCache\Roaming).
Следующим шагом является копирование следующих файлов в папку ContosoExpenses пакета:
- Contoso Expenses.lnk
- Contoso.ico
- StartingScriptWrapper.ps1
- createshortcut.ps1
Наконец, последним шагом является создание и установка новой версии пакета приложения. Во время инициализации первого приложения скрипт createhortcut.ps1 будет выполняться, и он создаст ярлык Contoso Expense в пользовательском рабочем столе.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по