Что означает расширение “_8wekyb3d8bbwe” в метро-приложениях Windows?

Вопрос или проблема

Магазинные приложения в Windows, кажется, имеют специальное дополнение к своему каталогу установки, например, новый Windows Terminal находится по адресу C:\Program Files\WindowsApps\Microsoft.WindowsTerminalPreview_1.3.2382.0_x64__8wekyb3d8bbwe\. Я заметил, что у других магазинных приложений также есть это дополнение _8wekyb3d8bbwe в их пути.

Я наткнулся на это, когда писал скрипт AutoHotkey, который должен запустить Windows Terminal, что делается с помощью

Run shell:AppsFolder\Microsoft.WindowsTerminalPreview_8wekyb3d8bbwe!App 

Это выглядит похоже на путь каталога установки, но в команде нет версии или архитектуры (часть _1.3.2382.0_x64_ отсутствует). Однако я должен указать _8wekyb3d8bbwe, чтобы это работало, и мне интересно, что это такое.

Что представляет собой _8wekyb3d8bbwe? Какое значение у этого и почему это здесь?

Строка 8wekyb3d8bbwe, похоже, не имеет другой цели, кроме как гарантировать, что имена пакетов от Microsoft не будут конфликтовать с именами пользователей.

Вы увидите в списке Microsoft на
Имена пакетов для приложений, предоставленных в Windows 10, версии 1709,
что все имена пакетов от Microsoft заканчиваются этой строкой.

Что касается того, почему была выбрана именно эта строка, а не другая, у меня нет объяснения.
Может быть, какой-то разработчик Microsoft просто случайно нажал на клавиши.
Судя по распределению букв, возможно, он использовал свою левую руку,
чтобы это сделать.

8wekyb3d8bbwe является PublisherId Microsoft, и именно поэтому все имена пакетов для приложений, выпущенных ими, заканчиваются на это.

Приложения, выпущенные другими издателями, будут иметь другие идентификаторы (например, у HP есть v10z8vjag6ke6).

Вы можете увидеть список всех ваших установленных пакетов, выполнив Get-AppxPackage * в PowerShell. В списке вы можете увидеть, что большинство приложений от Microsoft и будут иметь идентификаторы пакетов, заканчивающиеся на 8wekyb3d8bbwe. Вы также сможете найти некоторые, выпущенные другими компаниями, с другими идентификаторами издателя.

Из документации по разработке приложений для Windows от Microsoft:

Например, имя семейства пакетов приложения Windows Photos — “Microsoft.Windows.Photos_8wekyb3d8bbwe”, где “Microsoft.Windows.Photos” — это имя, а “8wekyb3d8bbwe” — идентификатор издателя для Microsoft.

Вы запускаете современные приложения по их URL, а не по их исполняемому файлу.

@Echo Это занимает несколько секунд для запуска ...
@For /f "tokens=1* delims=" %%A in ('reg query HKCR /f "URL:*" /s /d ^| findstr /c:"URL:" ^| findstr /v /c:"URL: " ^| Sort') Do @Echo %%A %%B
pause

Вышеуказанный пакетный файл перечисляет URL, зарегистрированные на вашем компьютере.

Например

    (Default)    REG_SZ    URL:calculator

Чтобы запустить текущую версию калькулятора

calculator://

Ответ или решение

Строка "_8wekyb3d8bbwe" в пути установки метро-приложений в Windows непосредственно связана с уникальной идентификацией пакетов, опубликованных Microsoft. Эта строка является частью ID издателя, который позволяет предотвращать конфликты имен между приложениями, разработанными различными издателями.

Что такое _8wekyb3d8bbwe?

  1. Идентификатор издателя: "_8wekyb3d8bbwe" — это уникальный идентификатор, ассоциируемый с Microsoft и используется для всех приложений, разработанных этой компанией. В результате, когда вы видите этот идентификатор в пути, вы можете быть уверены, что программа была выпущена Microsoft.

  2. Структура имен пакетов: Идентификатор издателя всегда идет в конце имени пакета, что обеспечивает уникальность и помогает системе различать приложения, принадлежащие разным компаниям. Приложения от других разработчиков будут иметь свои собственные идентификаторы. Например, HP может использовать идентификатор "v10z8vjag6ke6".

  3. Доступ к установленным пакетам: Вы можете увидеть все установленные пакеты, выполнив команду Get-AppxPackage * в PowerShell. Это даст вам полный список приложений с их именами и соответствующими идентификаторами, что упрощает управление и идентификацию приложений.

  4. Пример использования: Если рассмотреть приложение "Фотографии" от Microsoft, его полное имя пакета будет выглядеть как "Microsoft.Windows.Photos_8wekyb3d8bbwe", где "Microsoft.Windows.Photos" — это собственно название пакета, а "_8wekyb3d8bbwe" — идентификатор издателя.

Почему используется именно _8wekyb3d8bbwe?

На текущий момент нет официальной информации о том, почему именно эта строка была выбрана в качестве идентификатора. Возможно, она была сформирована случайным образом, но конечная цель идентификатора — это обеспечение уникальности пакетов, что критично в масштабах экосистемы приложений Windows.

Запуск приложений:

При запуске различных метро-приложений вам, как правило, необходимо использовать конструкцию "shell:AppsFolder" и указывать далее Название пакета вместе с идентификатором издателя, как это делает ваша команда:

Run shell:AppsFolder\Microsoft.WindowsTerminalPreview_8wekyb3d8bbwe!App 

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

Заключение

Итак, строка "_8wekyb3d8bbwe" является важной составляющей системы идентификации пакетов приложений Windows, позволяющей избежать конфликтов и повышая удобство управления приложениями. Понимание этой структуры не только помогает лучше разбираться в экосистеме Windows, но и упрощает работу разработчиков и пользователей при взаимодействии с метро-приложениями.

Оцените материал
Добавить комментарий

Капча загружается...