#.net #windows #.net-framework-version
#.net #Windows #.net-framework-version
Вопрос:
Я разрабатываю приложение C # Windows Form. Это приложение «Hello World», и ему не нужна какая-либо специальная библиотека, поэтому я не заставляю использовать какую-либо специальную версию .Net Framework. Но самое главное для меня — это запуск приложения во всех версиях Windows без необходимости установки или активного .Net Framework. Я хочу запустить это приложение в Windows 10, Windows 8.1 и Windows 7. Есть ли какие-либо общие предустановленные.Версия Net Framework для таких Окон? Например, .Net Framework 4.6, безусловно, предустановлен в Windows 10, но не в Windows 7. Или .Net Framework 3.5 предустановлен в Windows 7, но не в Windows 10, и мое приложение использует .Net Framework 4.5
Комментарии:
1. learn.microsoft.com/en-us/archive/blogs/astebner/…
2. К вашему сведению, я удалил нерелевантные теги из вашего вопроса (C #, Visual Studio).
3. С появлением .NET Core просто используйте это (автономное развертывание), и вам больше не нужно думать о таком беспорядке.
Ответ №1:
AFAIK у вас есть два варианта. У обеих есть свои проблемы.
Вариант 1
В этой статье говорится, что .NET Framework 4.5 и новее обратно совместимы со всеми предыдущими версиями, но есть одна загвоздка:
На практике эта совместимость может быть нарушена, казалось бы, несущественными изменениями в .NET Framework и изменениями в методах программирования. Например, улучшения производительности в .NET Framework 4.5 могут привести к возникновению состояния гонки, которого не было в более ранних версиях. Аналогичным образом, использование жестко запрограммированного пути к сборкам .NET Framework, выполнение сравнения равенства с определенной версией .NET Framework и получение значения частного поля с помощью отражения не являются методами обратной совместимости. Кроме того, каждая версия .NET Framework включает исправления ошибок и изменения, связанные с безопасностью, которые могут повлиять на совместимость некоторых приложений и компонентов.
Грязный материал.
Если вы пойдете по этому пути, я бы рекомендовал протестировать ваше приложение на новых установках всех (основных — 7, 8, 8.1, 10) версий Windows, в которые вы хотите выполнить развертывание. Вам придется делать это для каждого выпуска и обязательно вручную проверять все функции. Я бы не рекомендовал этот маршрут, если вы делаете что-то большее, чем просто пробуете приложение Hello World.
Вариант 2
Windows Forms была перенесена на .NET Core с версии 3.0, однако конструктор Windows Forms еще не полностью реализован.
Используя .NET Core 3.x, вы можете развернуть автономное приложение, как описано здесь, которое будет работать во всех версиях Windows.