У меня есть сценарий Enterprise LOB, где мне нужно установить связь между моим приложением Sideloaded UWP и несколькими консольными приложениями, разработанными сторонними разработчиками. Внутренне эти консольные приложения будут взаимодействовать с COM-портами и аппаратными устройствами.
Можно ли использовать службу приложений для связи между UWP и консольным приложением из пакета?
Более того, связь должна быть двухсторонней и асинхронной, ожидаемый поток:
- UWP -start-console-app-Ожидайте-нет-ответа-> Консоль Приложение (Как выполнить этот шаг без настольного моста?)
- UWP <-send-data-ожидайте-нет-ответа- <strong>Консольное приложение
- UWP -send-data-Ожидайте-нет-ответа-> Консольное приложение
Я уже ссылался на ссылки ниже, но в соответствии для них "Windows Application Packaging Project" является обязательным.
Пожалуйста, предложите, если есть и другие альтернативы.
РЕДАКТИРОВАТЬ:
Возможно начать -контактные консольные приложения из UWP, используя 2 метода:
- Создайте пакет с помощью консольного приложения, которое может запускать любые другие консольные приложения. См .: { ссылка }
- Запустите консольное приложение через URI протокола. Создайте протокол URI для консольного приложения: https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/aa767914%28v%3dvs.85%29 ИЛИ https://www.meziantou.net/registering-an-application-to-a-uri-scheme-using-net.htm
Однако невозможно установить связь между Пакет Консольное приложение и UWP через Сервис приложений. Несмотря на то, что консольное приложение имеет ссылку на Microsoft. Windows .SDK.Contracts пакет nuget и может обращаться к API AppServiceConnection, так как класс AppServiceConnection имеет объект DualApiPartitionAttribute. Соединение не может быть установлено с ошибкой AppServiceUnavailable.
Следовательно, сейчас я пробую новое решение с вариантом 1 сверху, как указано здесь: https://docs.microsoft.com/answers/questions/1166/how-uwp-can-communicate-with-windows-service.html?childToView=1211#answer -1211
Резервные параметры, требующие изучения:
- WCF Http / NamedPipes
- UWP запускает консольное приложение, консольное приложение отвечает, вызывая Launch по протоколу URI (конечно, UWP необходимо зарегистрироваться протокол)