Задать вопрос
Ответы пользователя по тегу Windows
  • Как запустить две разных копии приложения под windows10?

    Dertefter
    @Dertefter
    Чилл зона
    Кажется, я нашёл способ клонирования UWP-приложений.
    Сразу скажу, я могу ошибаться в некоторых вещах. Я никогда не занимался разработкой UWP приложений.
    Может быть некоторые вещи можно было сделать проще.

    Эвристическим путём (методом проб и ошибок) я пришёл с следующему способу:

    1. Открываем терминал от администратора. Открываем PowerShell.

    2. С помощью этой команды посмотрим список установленных UWP приложений:
    Get-AppxPackage

    3. Допустим мы хотим клонировать Unigram. Находим его среди этого списка. Будет выглядеть как-то так:
    Name              : 38833FF26BA1D.UnigramPreview
    Publisher         : CN=D89C87B4-2758-402A-8F40-3571D00882AB
    Architecture      : X64
    ResourceId        :
    Version           : 11.3.3.0
    PackageFullName   : 38833FF26BA1D.UnigramPreview_11.3.3.0_x64__g9c9v27vpyspw
    InstallLocation   : C:\Program Files\WindowsApps\38833FF26BA1D.UnigramPreview_11.3.3.0_x64__g9c9v27vpyspw
    IsFramework       : False
    PackageFamilyName : 38833FF26BA1D.UnigramPreview_g9c9v27vpyspw
    PublisherId       : g9c9v27vpyspw
    IsResourcePackage : False
    IsBundle          : False
    IsDevelopmentMode : False
    NonRemovable      : False
    Dependencies      : {Microsoft.UI.Xaml.2.8_8.2310.30001.0_x64__8wekyb3d8bbwe, Microsoft.NET.Native.Framework.2.2_2.2.29
                        512.0_x64__8wekyb3d8bbwe, Microsoft.NET.Native.Runtime.2.2_2.2.28604.0_x64__8wekyb3d8bbwe, Microsof
                        t.VCLibs.140.00_14.0.33519.0_x64__8wekyb3d8bbwe...}
    IsPartiallyStaged : False
    SignatureKind     : Store
    Status            : Ok

    Из всей этой кучи нам пригодится параметр Name.

    4. Экспортируем приложение как-то типа так:
    C:\Users\Derte> Get-AppxPackage -Name "38833FF26BA1D.UnigramPreview" | ForEach-Object {
     Copy-Item -Path $_.InstallLocation -Recurse -Destination "D:\CloneUnigram\$($_.Name)"
    }

    В эту команду нужно подставить тот самый Name, а так же путь, куда мы будем экспортировать (у меня это D:\CloneUnigram )
    В итоге у нас должно получиться что-то подобное:
    673880a2aed21647190438.png
    Куча файлов, среди которых должен быть AppxManifest.xml.

    5. Открываем AppxManifest.xml. Находим строчку Identity. Меняем значение Name и Publisher на свои.
    Как это получилось у меня:
    <Identity Name="CLONE_Unigram" Publisher="CN=WHO_AM_I" Version="11.3.3.0" ProcessorArchitecture="x64" />


    6. Соберём appx пакетик.
    Для этого нам понадобится Windows SDK. Скачать его можно тут: https://developer.microsoft.com/ru-ru/windows/down...

    После того как Windows SDK установится открываем терминал от администратора. Открываем Developer Command Prompt for Visual Studio. Собираем пакет:
    MakeAppx pack /d "D:\CloneUnigram\38833FF26BA1D.UnigramPreview" /p "D:\CloneUnigram\Clone.appx"


    7. Для UWP приложения по-хорошему нужен сертификат. Ну ладно - слепим его. В PowerShell:
    New-SelfSignedCertificate -Type Custom -Subject "CN=WHO_AM_I" -KeyUsage DigitalSignature -FriendlyName "MyAppCertificate" -CertStoreLocation "Cert:\CurrentUser\My" -KeyLength 2048


    8. Экспортируем полученный сертификат в формате .pfx.
    Выполнить > certmgr.msc.
    Откроется окно сертификатов. Идём в Личное > Сертификаты. Находим наш сертификат.
    ПКМ по нему > Все задачи > Экспорт
    Выбираем "Экспортировать закрытый ключ". Нужно будет ввести пароль. Вводим его и запоминаем. Далее по подсказкам. Сохраняем сертификат туда, где он не потеряется.
    6738851c7d1e2150689356.png

    9. Подпишем пакет нашим сертификатом в консоли Developer Command Prompt for Visual Studio:
    SignTool sign /fd SHA256 /a /f "ПУТЬ_К_СЕРТИФИКАТУ.pfx" /p "ПАРОЛЬ_СЕРТИФИКАТА" "ПУТЬ_ДО_APPX"


    10. ПКМ по нашему файлу appx > Цифровые подписи > В списке подписей выбираем нашу подпись > Сведения > Просмотр сертификата > Установить сертификат > Локальный компьютер > Поместить в следующее хранилище > Обзор > Устанавливаем его в Доверенные лица.

    11. Открываем APPX. Нажимаем установить...
    6738875b69272359488208.png

    12. Всё (?)
    Теперь у нас два приложения Unigram.
    673887a200fa7431529857.png

    И запускаются они как разные приложения:
    6738ac723b471206001864.png

    Ну и да. Наверное по хорошему в манифесте можно поменять его имя. И вообще в ресурсах поменять иконку чтобы их как-то различать... Но это уже сами
    Ответ написан
    Комментировать