Вопрос по .net – Работает ли .net 4.5 рядом с .net 4.0?

35

Я заинтересован в установке .NET 4.5.

Но я слышал, что это обновление на месте.

Так как пользователи в моей компании используют Windows XP.Я не могу выпускать любые клиентские приложения, использующие .NET 4.5.

Я знаю, что могу указывать на .net 4.0 при кодировании, но если я установлю .net 4.5, существует ли риск того, что на моем компьютере будет работать то, что не будет работать на компьютере с Windows XP (в котором есть только .net 4.0)?

(Кстати, я посмотрел, но не увидел, что этот вопрос задан. Если он был задан, укажите мне на него, и я постараюсь удалить этот.)

4.5 смешивает меня больше других с WindRT в миксе. paparazzo
Не устанавливайте бета-версию на производственном компьютере. У меня никогда не было такой большой проблемы. Используйте виртуальную машину, если хотите поиграть с ней. Hans Passant

Ваш Ответ

3   ответа
1

Принятый ответ очень актуален, но позвольте мне добавить пример ситуации, когда цель 4.0, скомпилированная на машине 4.5+, является чем-то менее полезным, чем 4.0 с исправленными ошибками.

Если у тебя естьComReference в ваших проектах они будут ссылатьсяtlbimp.exe из .NET 4.5 на сборочной машине. Это может привести к тому, что ваше программное обеспечение будет содержать обертки, которые ссылаются, например, наSystem.Reflection.MethodInfo.CreateDelegate(System.Type) метод, который существует только в .NET 4.5. Вы получитеMissingMethodException на машине WinXP.

Это случилось со мной при работе сComAdmin namespace, которые являются COM-объектами для доступа к каталогу COM +, но я подозреваю, что проблема может быть шире.

2

Я задал этот вопрос на форуме WPF и получил тот же самый ответ, который дал @hvd.

http://social.msdn.microsoft.com/Forums/en/wpf/thread/c05a8c02-de67-47a9-b4ed-fd8b622a7e4a

23

Да, есть риски, которые вы описываете. Интерфейс .NET 4.0 не изменился, поэтому, если вы ориентируетесь на .NET 4.0, ваша программа будет компилироваться и работать на XP с .NET 4.0, но реализация .NET 4.5 .NET 4.0 также содержит исправления ошибок. Если вы полагаетесь на то, что .NET Framework не содержит ошибок, а единственный доступный .NET Framework для XP содержит ошибки, ваша программа столкнется с этими ошибками. У меня было такое с Entity Framework, но могли быть и другие исправления ошибок.

Но обновление Windows не содержит лет исправлений. Обычно это настройки безопасности. Или мелкие исправления. И у пользователя есть выбор, отключить его или нет (и в моей компании они не могут это контролировать). Vaccano
@ Vaccano Справедливости ради, это также относится к вашим обычным обновлениям Windows и пользователям, которые отключают его.
Таким образом, в основном VS 11 будет «заражать» моя машинка? Теперь я буду слеп к любым исправлениям, которых не будет у моих пользователей? Это УЖАСНО. Если я вижу ошибки, я могу их обойти. Если я их даже не вижу, то я просто выгляжу как плохой разработчик. Vaccano

Похожие вопросы