Создание ярлыка приложения путем запуска сценария с помощью платформы поддержки пакетов

В этом документе показано, как создать ярлыки приложений с помощью платформы поддержки пакетов (ПСФ), которая запускает сценарии с помощью средства упаковки MSIX и приложения WPF по расходам Contoso .

расходы contoso

Идея состоит в копировании ярлыка приложения, который будет доступен внутри пакета, на Рабочий стол пользователя с помощью сценариев ПСФ.

Необходимо учитывать несколько моментов.

  1. Создайте ярлык только в том случае, если они абсолютно необходимы. Задача заключается в том, чтобы не загромождать рабочий стол пользователя.
  2. Перед созданием ярлыка необходимо установить приложение MSIX, чтобы можно было указать путь к приложению MSIX во время создания ярлыка.
  3. В то же время путь к приложению MSIX может измениться, если он содержит номер версии, указанный в папке установки. Пример пути установки " расходы Contoso ":

C:\Program Филес\виндовсаппс\ ContosoExpenses_ 1.0.0.0 _x86__3z09h3y28h0qg

Чтобы не менять ярлык приложения при каждом обновлении приложения, создайте ярлык, указав на аппексекутионалиас. Аппексекутионалиас позволяет ему запускать приложение со значением, определенным в сеансе псевдонима манифеста приложения, поэтому нет необходимости указывать полный путь к приложению. Поэтому перед созданием ярлыка определите псевдоним в манифесте приложения. в противном случае Windows Explorer не сможет распознать псевдоним, и это не позволит нам создать ярлык.

Создание псевдонима приложения

Щелкните пункт меню сведения о пакете и выберите Открыть файл, доступный в нижней части пользовательского интерфейса, чтобы изменить манифест приложения:

открыть манифест msix

Включите следующие пространства имен, которые будут использоваться для создания псевдонима, как показано ниже.

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

Включите значение uap3 и Desktop в элемент игнорабленамеспацес :

IgnorableNamespaces="uap uap3 desktop rescap build"

Включите псевдоним выполнения приложения после элемента </УАП: висуалелементс> :

  <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.exe следующим образом:

ярлык нового приложения

Назовите ярлык для расходов Contoso:

Создание ярлыка для нового приложения завершено

По умолчанию сочетанием клавиш будет универсальный значок:

ярлык универсального приложения

Изменение сочетания клавиш является простым, но проблема заключается в том, чтобы не использовать полный путь к приложению с номером версии, который может измениться в будущем обновлении. Одним из способов решения этой проблемы является копирование значка из пакета в папку% AppData%, используемую приложением MSIX, т. е. %локалаппдата%\паккажес\ ContosoExpenses_3z09h3y28h0qg \локалкаче\роаминг _ , которая не имеет номера версии.

Чтобы изменить ярлык приложения, теперь необходимо вручную скопировать значок в эту папку. Это будет автоматизировано позже с помощью скриптов ПСФ.

ярлык AppData

Теперь можно изменить значок ярлыка на% LocalAppData% path:

ярлык нового пути

По-прежнему в свойствах ярлыка воспользуйтесь преимуществами и измените значения целевого объекта и Начните с свойства para % LocalAppData% \Microsoft\WindowsApps\contosoexpenses.exe e %локалаппдата%\микрософт\виндовсаппс соответственно:

ярлык новых значений

Теперь, когда ярлык работает, следующий шаг заключается в его добавлении в пакет и автоматизации процесса создания.

создать ярлык

Получение файлов ПСФ

Скачайте PSFBinaries.zip из репозитория GitHub ПСФ.

ПСФ из выпусков GitHub

Извлеките требуемые 32-разрядные или 64-битные файлы в корневую папку каталога пакета, в зависимости от того, является ли приложение 32 или 64-bit. Руководствуйтесь следующей таблицей.

Исполняемый файл приложения — x64 Исполняемый файл приложения — x86
PSFLauncher64.exe PSFLauncher32.exe
PSFRuntime64.dll PSFRuntime32.dll

Включить в пакет файлы ПСФ

Измените расходы Contoso с помощью средства упаковки MSIX :

ПСФ из GitHub Edit MPT

Щелкните элемент меню пакетные файлы , щелкните правой кнопкой мыши папку пакет и выберите команду Добавить файл...:

ПСФ из GitHub Добавление файлов ПСФ

Так как сборка Контосоекспенсе находится в 32-разрядном виде, она добавила ПСФ 32-bit необходимые файлы. Теперь содержимое пакета должно выглядеть примерно так:

ПСФ из GitHub ПСФ добавленные файлы

Обновление манифеста пакета для ПСФ

Щелкните пункт меню сведения о пакете и выберите Открыть файл, доступный в нижней части пользовательского интерфейса, чтобы изменить манифест приложения:

ПСФ из GitHub изменить манифест

На этом шаге необходимо изменить точку входа приложения (ContosoExpenses\ContosoExpenses.exe) на PSFLauncher32.exe.

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

Сохраните и закройте файл манифеста.

Создание config.jsдля файла

Вернитесь в средство упаковки MSIX, щелкните файлы пакета, выберите папку пакета и добавьте новый config.jsв файле со следующим содержимым.

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

👀 Обратите внимание, что идентификатор приложения совпадает с манифестом:

config.jsдля файла необходимо создать в корневом каталоге пакета следующим образом:

ПСФ из GitHub

config.jsв файле используется для указания того, что сценарий createshortcut.ps1 должен выполняться только один раз при первой инициализации приложения. Так как Рабочий каталог имеет значение контосоекспенсес, скрипт createshortcut.ps1 (который будет создан позже) и сценарий StartingScriptWrapper.ps1 (из файлов ПСФ) необходимо добавить в папку контосоекспенсес .

Создание скрипта 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 . lnk , созданный ранее и который будет доступен в пакете, на Рабочий стол пользователя. Вторая инструкция копирует значок contoso. Icon в папку MSIX APPDATA (%Локалаппдата%\паккажес\ ContosoExpenses_3z09h3y28h0qg \Локалкаче\роаминг ) .

Следующим шагом является копирование следующих файлов в папку Контосоекспенсес пакета:

  • Contoso расходы. lnk
  • Contoso. ico
  • StartingScriptWrapper.ps1
  • createshortcut.ps1

Наконец, последним шагом является Создание и Установка новой версии пакета приложения. Во время первой инициализации приложения будет запущен сценарий createshortcut.ps1 , который создаст ярлык Contoso Expense на рабочем столе пользователя.