Ответы с форумов MSDN

Совместимость версий .NET Framework

Date: 27.01.2018 18:01:17

Я не Microsoft, но кое-что могу написать.

"Во-первых, верно ли то, что для приложений .NET характерна полная обратная совместность? Т.е. я могу скомпилировать приложение под .NET 1.0 и оно будет в полной мере работать на компьютере, где установлен .NET Framework 4.7.1?."

См. https://docs.microsoft.com/ru-ru/dotnet/framework/migration-guide/version-compatibility Если указать SupportedRuntime 4.0 - оно запустится; если нет - скорее всего упадет с ошибкой или предложит установить .NET 1.0. Насчет "в полной мере работать" сомнительно, между 1.0 и 4.0 разница довольно большая. Только тестирование даст точный ответ.

"но не совсем ясно почему записано так мало версий Windows"

Не очень понятно, что значит "мало". Версии Windows до XP старее, чем сама .NET Framework, естественно их там нету. 

"Если версия Windows не указана в списке поддерживаемых платформой .NET Framework, значит ли это, что ни одна версия .NET не будет работать на этой Windows"

Нет конечно, можно и на Win9x впихнуть NET. Другое дело, что если какой-то API-функции не будет в этой версии Windows, использующие ее компоненты не будут работать.

"Если нет никаких рисков и ограничений, почему бы Microsoft официально не внести эту версию Windows в список поддерживаемых для .NET"

Потому что версии Windows старее висты вообще больше не поддерживаются. Соответственно, нет смысла на них поддерживать .NET.

Вывод - собирайте под .NET 3.5 и указывайте SupportedRuntime 4.0, если хотите обеспечить поддержку всего спектра "живых" ОС (WinXP - Win10) и работу на Win7 - Win10 из коробки.


Message 544

Date: 28.01.2018 8:21:08


Так понимаю, когда пишется + Vista или +7, имеется ввиду Vista SP0/SP1/SP2 и Win7 SP0/SP1?

.NET 4.5 и более поздние требуют именно Win7 SP1 или Vista SP2. По крайней мере, на странице скачивания так написано.

Message 543

Date: 28.01.2018 9:17:47

"Ну а я говорил про те, где написано +Vista, +7. Если указывается 7 SP1, то ясно, что 7 SP0 не поддерживается."

Так в сравнительной таблице это не отражено, поэтому и пишу. Надо смотреть на требования конкретного продукта, а не на сравнительную таблицу.

".NET 4.6 поддерживает Windows 10, Windows 8.. Windows Server 2012, 2012 R2, но не указан Server 2016."

Т.к. Server 2016 уже содержит 4.6.2, которая замещает ее. 


Автор: VadimTagil

Главная страница - Список тем - Репозиторий на GitHub