Кто знает секрет, почему майкрософт упорно открещивается от своих же рантаймов, даже тех, которые сейчас в ходу?
Я помню период, когда только появился дотнет и была проблема, что у людей он не стоял и приходилось со своими программами его поставлять. А он весил не мало по меркам тех времён.
Потом с появлением новых версий винды, свежий дотнет шёл в комплекте и, казалось бы, вот оно счастье.
Но майкрософт решили, что людям не стоит жить слишком хорошо и начали старые версии потихоньку вырезать из системы. То есть они специально вернули ту же проблему, хочешь запустить софт - качай дотнет нужной версии.
Появился дотнет кор, потом донет 5, 6, 7, 8… И я уже сейчас не возьмусь судить, на какой версии винды какой дотнет идёт из коробки, а какой нужно доустанавливать. Причём, пятый, который только вот буквально вчера был на коне - сейчас уже депрекейтед.
Та же котовасия с рантаймами для C++. Их до жопы версий, больше чем версий самой студии, в которой программы под винду пишутся и собираются. Версии для x86, x64, arm, etc.
А ещё были разные J# и прочие невзлетевшие поделки, на которых тем не менее, писался софт. И XNA нескольких версий (это рантайм для игр под дотнет, который похоронили). Silverlight. Сейчас всего не упомню.
Нормальные человеческие инсталляторы за немного денег умеют впиливать проверки на наличие рантаймов и, если нужного нет, - настойчиво просят пользователя рантайм автоматически скачать и по возможности поставить по-тихому. Но я не врубаюсь, зачем такая подлянка от майкрософт?
Ещё помню (не уверен, насколько это правда) читал, что в лицензии от майкрософта запрещено рантайм для того же C++ поставлять вместе с программой. Ну то есть, ты не можешь взять нужные DLL и положить тупо рядом со своим EXE. Ты должен заставить пользователей своего продукта поставить их рантайм отдельно.
Делфи же, пока его не похоронили его владельцы (на самом деле он до сих пор же есть, просто он морально труп) - умел собирать самодостаточный EXE, которому не требовалось никаких дополнительных примочек. Почему майкрософт не хочет (вряд ли не может) сделать так же - я не понимаю.
В дотнет 8 появилась ебанистика, позволяющая скомпилировать написанный на шарпе код в такое приложение, которое будет работать, не требуя установленного дотнета. Вроде бы и здорово, но нет. Потому что, во-первых, там не будет работать куча всего (от рефлекшена до всяких банальных мелочей), а во-вторых, это доступно сейчас для узкого круга приложений типа консольных.