В чем разница между <RequiredTargetFramework>и <targetframeworkversion>? - PullRequest
11 голосов
/ 11 августа 2010

Мы обновили наши проекты .net 3.5 (c #) до .net 4.0.Когда вы смотрите на файл проекта, есть два тега, из которых я пытаюсь найти смысл:

<RequiredTargetFramework>3.5</RequiredTargetFramework>
<TargetFrameworkVersion>4.0</TargetFrameworkVersion>

Почему существуют два, казалось бы, похожих тега с разными значениями?

Ответы [ 2 ]

8 голосов
/ 11 августа 2010

Элемент <RequiredTargetFramework> уже присутствовал в вашем проекте 3.5.Он связан со сборкой <Reference> и присутствует только в сборках, которые недоступны в .NET 2.0

. Я не покупаю много акций, упоминая об этом в MSDN, я не вижу, как пакетУ здания есть что-нибудь, чтобы сделать ссылки на сборку.Он также не используется ни в одном из 3.5. MSBuild .target файлов.Я думаю, что среда IDE просто использует ее, чтобы поместить значок предупреждения рядом со ссылкой в ​​узле «Ссылки», когда вы изменяете Target Framework на версию, меньшую, чем требуется для поддержки сборки.в файле проекта, который не влияет на MSBuild, но влияет на IDE.Как <SubType> и <DependentUpon> в элементе <Compile>.

0 голосов
/ 11 августа 2010

Вы нашли эту ссылку? текст ссылки .TargetFrameworkversion - это просто, это то, что вы можете изменить в свойствах проекта, чтобы указать, какую инфраструктуру создавать.В статье говорится, что RequiredTargetFramework используется для пакетирования элементов (но до сих пор неясно, для каких целей он используется, кроме того, что он не используется часто)

группирует элементы Reference по метаданным RequiredTargetFramework.Вывод цели выглядит следующим образом:

Ссылка: 3,5; 3,5

Ссылка: 4,0

Пакетирование целей редко используется в реальных сборках.Пакетирование задач более распространено.Для получения дополнительной информации см. MSBuild Batching.

...