4

Мы исправляем повторное архивирование приложения и обсуждаем, можно ли использовать UWP вместо обычного приложения WPF.Связь с UWP-соединением с службой Windows

Наше приложение нуждается в доступе к всей файловой системе и всем системным ресурсам. Это проблема, поскольку приложения UWP изолированы песочницей. Тем не менее, мы пытаемся обойти эту проблему, пытаясь приблизиться к нему таким образом:

  • службы Windows -> Запуск от системы в любое время. Это обеспечит базовую функциональность, когда дело доходит до доступа и изменения системных ресурсов .

  • UWP Применение -> С UWP является песочница, то UWP приложение будет перенаправлять все запросы системы к службе Windows, которая будет делать все от Бранта работы и просто вернуть выход.

Мы можем просто сделать это в WPF, но мы хотели бы использовать UWP для того, чтобы использовать некоторые новые ядра Windows 10 особенность WPF отсутствует, такие как живые плитки и Cortana.

Считаете ли вы, что наш подход возможен? Одна из наших неопределенностей заключается в том, как мы можем заставить приложение UWP общаться с Windows Service - мы рассмотрели такие вещи, как SignalR и Desktop Bridge, но не уверены, что может быть лучшим подходом для нашего сценария.

Спасибо!

ответ

1

Считаете ли вы, что наш подход возможен?

Мы не можем напрямую использовать службу Windows в приложении UWP. Чтобы сделать IPC между приложением Win32 и UWP-приложением, что может помочь здесь использовать новую возможность <rescap:Capability Name="runFullTrust" />, и она позволяет использовать приложение Win32, запущенное API FullTrustProcessLauncher, для достижения контекста безопасности приложения, чтобы использовать WinRT API. Но, как вы видите здесь rescap, это означает, что это приложение UWP не может быть опубликовано в магазине.

Вы можете обратиться к официальному лицу AppService Bridge Sample. Вы можете сначала создать традиционное настольное приложение, которое потребляет App service (который может взаимодействовать с WPF и UWP-приложением, а не с традиционной службой Windows) и использовать API-интерфейсы WinRT после создания этого приложения (не запускать его), файл .exe быть сгенерированным. Но это приложение не может работать, так как оно использует WinRT API, тогда вы можете создать свое приложение UWP, чтобы сделать это приложение для настольных приложений.

Мы рассмотрели такие вещи, как SignalR и Desktop Bridge, но не уверены, что может быть лучшим подходом для нашего сценария.

Таким образом, я думаю, что настольный мост может быть лучшим подходом здесь.