Работает ли .net 4.5 рядом с .net 4.0?
Я заинтересован в установке .NET 4.5.
Но я слышал, что это обновление In-Place.
Так как пользователи моей компании используют Windows XP. Я не могу выпускать приложения на стороне клиента, которые используют .NET 4.5.
Я знаю, что могу настроить таргетинг на .net 4.0, когда я код, но если я устанавливаю .net 4.5, есть ли риск работы на моей машине, который не будет работать на компьютере под управлением Windows XP (который имеет только .net 4.0)
(Кстати, я посмотрел, но не заметил, что этот вопрос задан. Если он был задан, укажите мне его, и я попытаюсь удалить его.)
Ответы
Ответ 1
Да, есть риски того типа, который вы описываете. Интерфейс .NET 4.0 не изменился, поэтому, если вы настроите таргетинг на .NET 4.0, ваша программа будет компилироваться и запускаться на XP с .NET 4.0, но .NET.NET.NET 4.0 также содержит исправления. Если вы полагаетесь на .NET Framework, которая не является ошибкой, и единственная доступная .NET Framework для XP является ошибкой, ваша программа будет испытывать эти ошибки. Я имел это случается с Entity Framework, но могут быть и другие исправления ошибок.
Ответ 2
Я задал этот вопрос на Форуме WPF и получил базовый тот же ответ, который дал @hvd.
http://social.msdn.microsoft.com/Forums/en/wpf/thread/c05a8c02-de67-47a9-b4ed-fd8b622a7e4a
Ответ 3
Принятый ответ очень важен, но позвольте мне добавить пример ситуации, когда цель 4.0, скомпилированная на компьютере с более высокой степенью точности, является чем-то менее полезным, чем 4.0 с исправленными ошибками.
Если у вас есть ComReference
в ваших проектах, они будут вызывать tlbimp.exe
из .NET 4.5 на машине сборки. Это может привести к тому, что ваше программное обеспечение содержит обертки, которые ссылаются, например, на метод System.Reflection.MethodInfo.CreateDelegate(System.Type)
, который существует только в .NET 4.5. Вы получите MissingMethodException
на машине WinXP.
Это случилось со мной при работе с пространством имен ComAdmin
, которое является COM-объектами для доступа к каталогу COM +, но я подозреваю, что проблема может быть шире.