Переход .NET Framework с версии с версии 3.5 до версии 4.0

У меня есть решение visual studio 2008 и .NET Framework v3.5. Недавно я конвертировал в Visual Studio 2010 и .NET Framework версии 4.0.

Чтобы перейти на .NET Framework v4.0, я выполнил вкладку свойств проекта и вкладку build, изменив целевой объект на целевую платформу v4.0 для каждого проекта. Однако, если я открою файл проекта конфигурации csproj, я вижу, что есть тэг, связанный с v3.5:

 <ItemGroup>
   <Reference Include="System" />
   <Reference Include="System.Core">
    <RequiredTargetFramework>3.5</RequiredTargetFramework>
   </Reference>
   <Reference Include="System.Data" />
   <Reference Include="System.Drawing" />
   <Reference Include="System.Xml" />
   <Reference Include="WindowsBase">
    <RequiredTargetFramework>3.0</RequiredTargetFramework>
   </Reference>
 </ItemGroup>

Я хотел бы знать, почему для некоторых включенных ссылок ссылаются на v3.0, v3.5 фреймворки, если цели проекта для .NET Framework v4.0. Это также происходит для других проектов, несмотря на то, что проект нацелен на NET framework v4.0.

System.Core нацелен на 3,5 WindowsBase нацелен на 3.0

Ответ 1

Для самих этих ссылок требуется 3.5 (для System.Core) и 3.0 (для WindowsBase). На самом деле, это не на 100% правильно (см. Комментарий Рамгаунда к этому ответу).

До сих пор любая платформа .NET выше 2.0 - это, по сути, DLL-сервер, который находится поверх 2.0. Например, за несколько лет и одно задание мне нужны LINQ и Hashset <T> в .NET 2.0, поскольку половина моих пользователей застряла на Win2K, которая не поддерживает ничего выше .NET 2.0. Я закончил перекомпилировать System.Core из Mono и имел целевой показатель 2.0 и смог использовать более новые функции.

Я не думаю, что вам нужно беспокоиться.