ПРИМЕЧАНИЕ : я уже посмотрел этот связанный вопрос, это не дубликат
Я работаю над приложением UWP, которое также использует Desktop Bridge (пакет приложения содержит приложение UWP и компонент WinForms), и пытаюсь добавить функцию автоматического запуска, но пока безуспешно.
Вот что я сделал:
Некоторые исследования.Посмотрел этот вопрос, упомянутый ранее, этот пост в блоге от MS , а также официальные документы .
Затем следуйте документам, отредактировав файл Package.appxmanifest
, добавив пространство имен uap5
, а затем узел uap5:Extension
в соответствии с инструкциями, установив файл .exe моего приложения в свойстве Executable
и Windows.FullTrustApplication
в EntryPoint
.property.
- Bonus : на всякий случай я также попытался заменить пространство имен
uap5
на desktop
, поскольку некоторые примеры кода использовали его вместо этого.Тот же результат, приложение не запускается вообще. - Включены API для получения задачи запуска и запроса на ее настройку.
- Развернул приложение, приступил к использованию этих API, получилв окне подтверждения и нажмите «Разрешить».
- Открыл управляемую задачу и дважды проверил, что имя приложения было там на вкладке «Автозагрузка», а рядом с ним правильно отображается метка «Включено».
- Выйдите из системы и вернитесь обратно
В этот момент ничего не происходит, за исключением того, что указатель мыши показывает загрузочное кольцо в течение полсекунды после входа в систему. Открыл окно просмотра событий Windows и обнаружил ошибку,что указывало на неудачный автоматический запуск приложения.Попытка повторилась несколько раз и достаточно точно, каждый раз, когда приложение не запускалось, и в программе просмотра событий появлялась другая идентичная ошибка.Это информация об ошибке:
Application name: <my app>.exe, versione: 1.0.0.0, timestamp: 0x5a68410c
Module: KERNELBASE.dll, versione: 10.0.17134.407, timestamp: 0x99042cc0
Exception code: 0xe0434352
Offset: 0x000000000003a388
Process ID: 0x1c4c
Path: C:\Users\<my username>\Documents\GitHub\<my app>\<my app>.Package\bin\x64\Debug\AppX\<my app>.exe
Module path: C:\Windows\System32\KERNELBASE.dll
[...]
Я не уверен, что я делаю здесь не так, я пошагово следовал за документами и вижу приложение, перечисленное в диспетчере задач, ноон просто не запускается таким образом.
Любая помощь будет признательна, спасибо заранее!10
EDIT : похоже, проблема связана с функциональностью Desktop Bridge.У меня есть приложение UWP и проект упаковки, и я добавил задачу запуска в оба файла .appxmanifest
(с разными идентификаторами).Я делаю это, используя проект упаковки для создания сборок x86 / x64 и проект UWP непосредственно для сборок ARM / ARM64.
Если я разверну только приложение UWP (автономное, без пакета) и включу задачу запуска, приложение будет работать нормально.Но если я разверну пакетный проект и включу эту задачу запуска, запуск завершится неудачно.Я вижу задачу запуска в диспетчере задач в обоих случаях.Как упоминалось ранее, когда задача запуска завершается неудачно для проекта упаковки, я вижу эти ошибки в средстве просмотра событий.
EDIT # 2 : провел еще несколько тестов с приложением Desktop Bridge.Кажется, что после того, как он не запускается, регистратор событий Windows получает еще две ошибки, перечисленные там для каждой попытки.Одна из них - ошибка в категории «Ошибка приложения», упомянутая ранее, а другая - ошибка в категории «AppModel-Runtime» со следующей информацией:
Сбой при изменении состояния приложения AppModel 0x490 при изменении 0x490для пакета для пользователя (текущий статус = 0x0, желаемый статус = 0x20).
EDIT # 3 : по запросу, вот файл .appxmanifest
для проекта упаковки.Обратите внимание, что, как упоминалось ранее, я попытался добавить задачу запуска как с использованием пространства имен desktop
, так и более нового пространства имен uap5
.Опять же, в обоих случаях я могу получить задачу и предложить пользователю включить ее, и я вижу ее в диспетчере задач, но приложение по-прежнему не запускается с обычной ошибкой.