2013-02-27 3 views
13

Я разрабатываю настольное приложение C# с использованием Winforms. Я создал стратегию установки с помощью визуальных студий, щелкнув один раз инструмент установки. К счастью, он предоставляет клиентам возможность обнаруживать, загружать и настраивать связанные компоненты требуемого уровня.делает .Net 4.5 включает .Net 4.0

Вопрос в том, что я начал разрабатывать это приложение с .NET 4.0, а затем обновил его до .NET 4.5 в списке предварительных условий, который проверяется как 4.5, так и 4. Мне интересно, если я сниму компонент .NET 4.0, было бы хорошо?

.NET 3.5 включает .NET 4.0?

ответ

23

Когда .NET 4.5 установлен, он эффективно заменяет .NET 4.0 на машине. .NET 4.0 перезаписывается новой версией .NET 4.5, которая, согласно Microsoft, должна быть на 100% обратной совместимостью.

Прочитайте эти очень хорошие статьи на том же:

.NET 4.5 is an in-place replacement for .NET 4.0

.NET Versioning and Multi-Targeting - .NET 4.5 is an in-place upgrade to .NET 4.0

3

Я думаю, что нет никакой необходимости в 4.0, если цель 4.5

См Installing the .NET Framework 4.5

В .NET Framework 4.5 заменяет .NET Framework 4. При установке .NET Framework 4.5 на . система, которая имеет .NET Framework 4 установлен, узлы заменены *

+0

Есть особенности .NET 4.5, которые не доступны в версии 4.0, так что лучшая практика для нацеливания старой версии , чтобы не искушаться использовать функции, которых нет в 4.0. – MDMoore313

0

Ответ на этот вопрос здесь: http://msdn.microsoft.com/en-us/library/5a4x27ek.aspx

именно:

• В .NET Framework 4.5 заменяет .NET Framework 4. При установки .NET Framework 4.5 на системе, которая имеет .NET Framework 4 установлены, узлы заменяются.

Таким образом, .NET 4.5 не включает .NET 4.0. У вас еще есть шанс, что некоторые узлы могут быть пропущенным

+0

, так как я тестирую и вижу, что мое приложение не требует какой-либо конкретной сборки .net 4.0, я не должен удалять его из списка предварительных условий. Благодарю. –

2

Это не включает он сам по себе (как некоторые части перезаписываются), однако, если вы нацелены 4.0, то он должен работать с 4.5, но НЕ вице наоборот.

0

Вы можете скомпилировать приложение для .NET 4.5 и запустить его в среде выполнения 4.0, то есть до тех пор, пока вы не нажмете новую функцию, которой не существует в 4.0. В этот момент приложение бомбит во время выполнения. Скажем, вы пишете код, который в основном представляет собой .NET 4.0, но имеет только некоторые из новых возможностей .NET 4.5 . .NET будет с радостью запускать ваше приложение и запускать все версии 4.0, пока он не достигнет этого 4.5-кода, а затем сработает бесцеремонно во время выполнения.

Итак, ни один .NET 4.5 не включает .NET 4.0.

+0

Да, вы заявляете что-то сложное :) Я точно не понял. –

+1

Ваш ответ, кажется, утверждает, что 4.0 не включает 4.5. Не полезно. –

Смежные вопросы