Будет ли приложение сделано в .net Framework 4.6.1 безопасно работать в .net Framework 4.5 - PullRequest
1 голос
/ 04 мая 2019

Я создал приложение в .net framework 4.6.1, которое отлично работает в localhost.Но на сервере (Windows Server 2012) у нас есть .net framework 4.5.

Должны ли мы обновить его до framework 4.7 или он будет работать в текущей среде?

Ответы [ 2 ]

3 голосов
/ 04 мая 2019

Это зависит от того, используете ли вы новые функции, представленные в .NET 4.5.1 или более поздних версиях или нет.

Чтобы обеспечить совместимость, вам следует либо

  1. обновить целевую систему до (как минимум) 4.6.1 или
  2. уменьшить значение параметра " Target Framework " вашего проекта до (максимум) 4.5:

    project settings screenshot

Опция 1 обеспечит доступность всех функций, которые вы используете в разработке, в целевой системе.

Опция2 гарантирует, что вы получите ошибку во время компиляции, если вы используете функции, которые недоступны в .NET 4.5.

0 голосов
/ 04 мая 2019

.NET Framework 4.5 и более поздние версии обратно совместимы с приложениями, созданными с более ранними версиями .NET Framework. Другими словами, приложения и компоненты, созданные с использованием предыдущих версий, будут работать без изменений в .NET Framework 4.5 и более поздних версиях. Однако по умолчанию приложения запускаются в версии общеязыковой среды выполнения, для которой они были разработаны, поэтому вам может потребоваться предоставить файл конфигурации, чтобы приложение могло работать в .NET Framework 4.5 или более поздних версиях.

На практике эту совместимость можно нарушить, казалось бы, несущественными изменениями в .NET Framework и изменениями в методах программирования. Например, улучшения производительности в .NET Framework 4.5 могут привести к состоянию гонки, которого не было в более ранних версиях. Аналогичным образом, использование жестко заданного пути к сборкам .NET Framework, сравнение на равенство с определенной версией .NET Framework и получение значения частного поля с помощью отражения не являются обратно совместимыми методами.

Кроме того, каждая версия .NET Framework содержит исправления ошибок и изменения, связанные с безопасностью, которые могут повлиять на совместимость некоторых приложений и компонентов. Поэтому я бы предложил вам обновить его до фреймворка 4.7.

Для более подробной информации, пожалуйста, проверьте: https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/version-compatibility

...