Что я сделал
Я успешно упаковал настольное приложение, используя командную строку следующим образом:
DesktopAppConverter.exe -Installer "_setup.bat" -InstallerArguments "<log_folder>" -Destination "c:\packaged_app" -PackageName "MyPackageName" -Publisher "CN=MyPublisher" -AppId "MyApp" -AppDisplayName "MyApp" -AppDescription "MyApp" -PackageDisplayName "MyApp" -PackagePublisherDisplayName "MyPublisher" -Version 1.2.3.4 -Verbose
Чтобы протестировать приложение локально, я успешно установил пакет с помощью следующего командлета PowerShell, как описано в эта страница MSDN:
Add-AppxPackage –Register AppxManifest.xml
Затем я попытался запустить приложение, щелкнув его пункт меню «Пуск».
Симптомы ошибки
Появится диалоговое окно с ошибкой, которое выглядит следующим образом:
C:\packaged_app\MyPackageName\PackageFiles\MyApp\my.exe
Неверный параметр.
Указанный путь правильный.
В журнале событий Windows есть соответствующая запись:
%4: Невозможно создать процесс для пакета %1, так как при подготовке к активации возникла ошибка. %5
Полный XML записи журнала событий (данные EventPayload опущены):
Log Name: Microsoft-Windows-AppModel-Runtime/Admin
Source: Microsoft-Windows-AppModel-Runtime
Date: 10/19/2017 3:51:08 PM
Event ID: 203
Task Category: None
Level: Error
Keywords: DesktopAppXProcess
User: SYSTEM
Computer: DESKTOP-5ODUDQ0
Description:
%4: Cannot create the process for package %1 because an error was encountered while preparing for activation. %5
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-AppModel-Runtime" Guid="{f1ef270a-0d32-4352-ba52-dbab41e1d859}" />
<EventID>203</EventID>
<Version>0</Version>
<Level>2</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x2000000000000004</Keywords>
<TimeCreated SystemTime="2017-10-19T13:51:08.634936000Z" />
<EventRecordID>874</EventRecordID>
<Correlation />
<Execution ProcessID="1204" ThreadID="4232" />
<Channel>Microsoft-Windows-AppModel-Runtime/Admin</Channel>
<Computer>DESKTOP-5ODUDQ0</Computer>
<Security UserID="S-1-5-18" />
</System>
<ProcessingErrorData>
<ErrorCode>15005</ErrorCode>
<DataItemName>PackageName</DataItemName>
<EventPayload></EventPayload>
</ProcessingErrorData>
</Event>
Что я пробовал
Я добавил параметры -Sign -MakeAppX
в командную строку DesktopAppConverter. После установки сгенерированного сертификата и пакета .appx мне удалось успешно запустить приложение из пункта меню «Пуск».
Но согласно этой странице MSDN в этом нет необходимости для локального тестирования:
Вы можете запустить свое приложение, чтобы протестировать его локально, без необходимости получать сертификат и подписывать его.
Поскольку приложение довольно большое (несколько 100 МБ), мне бы хотелось избежать переупаковки и отказа от приложения каждый раз, когда что-то меняется.
Сведения о системе
- Сборка Windows 10 x64 15063.674, работающая в VirtualBox
- Базовый образ DAC: «BaseImage-15063-UPDATE.wim»