Вы должны иметь возможность использовать PackageManager.FindPackage или PackageManager.FindPackageForUser , чтобы увидеть, доступен ли целевой пакет универсально или для конкретного или текущего пользователя.
См. Вызов API-интерфейсов Windows 10 из настольного приложения для получения информации о том, как вызвать это из вашего приложения WinForms.
Также ознакомьтесь с Перечислять пакеты приложений поПример SID пользователя , который демонстрирует перечисление пакетов приложения из консольного приложения C #.Используемый проект устарел (для VS2013), но общий поток кода все еще должен работать.
В зависимости от вашего конкретного сценария (зачем вам это нужно знать и что вы будете делать с этой информацией?) могут быть лучшие способы для вашего конкретного случая использования.Например: вы спрашивали в другом месте о запуске приложения UWP.Если вы определяете и запускаете протокол для приложения, вам не нужно сначала проверять, существует ли он уже там, поскольку при запуске протокола будет предложено найти приложение в магазине, если оно не установлено.