Какие есть способы определения установленных .NET Framework и Microsoft Visual C++ пакетов в ОС? И есть ли смысл проверять наличие .NET Framework специфической или минимально допустимой версии в самом начале запуска приложения чтобы выводить пользователю об отсутствии последней? Или приложение выдаст ошибку при отсутствии необходимого пакета раньше, чем будет произведена проверка?
Если на целевой машине нет необходимой для запуска приложения платформы, вы не сможете ничего вывести, так как приложение не запустится. Однако, это не всегда представляет реальную проблему.
При отсутствии необходимой версии .NET современные Windows выведут читаемое сообщение, предлагающее установить ее. Его вид можно посмотреть здесь: https://docs.microsoft.com/en-us/dotnet/framework/install/on-windows-7
Что касается отсутствия Visual C++ Redistributable, все несколько печальнее. Выведется сообщение вида
Application failed to start because msvcrXXX.dll not found. Reinstalling application may fix this problem.
Определение конкретной версии redistributable, которую нужно установить, будет трудно для пользователя на основе этой надписи. Поэтому С++-приложения должны обычно иметь инсталлятор, проверяющий наличие необходимой версии по ключам в реестре, и при отсутствии устанавливающий ее (или направляющий пользователя на нужный адрес в интернете, где ее можно скачать). Например, руководство как сделать это для Wix.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости