Могу ли я использовать msbuild 4.0 для целевой сети 3.5? - PullRequest
3 голосов
/ 27 февраля 2012

В моем решении у меня есть ссылки на проект (например) System.ServiceModel.dll, где «использовать конкретную версию» имеет значение false.Все хорошо работает с msbuild 3.5.

Я бы хотел использовать msbuild 4.0 для использования функций свойств .Я попытался передать в свойствах "TargetFrameworkVersion = 3.5; ToolsVersion = 3.5".Однако я получаю следующую ошибку:

Не удалось загрузить файл или сборку 'C: \ WINDOWS \ Microsoft.Net \ Assembly \ GAC_MSIL \ System.configuration \ v4.0_4.0.0.0__b03f5f7f11d50a3a \ System.configuration.dll 'или одна из его зависимостей.

Этого не произойдет, если я использую msbuild 3.5.

Можно ли сделать эту работу без указания версий в файлах проекта?(В будущем мы можем захотеть обновить приложение до dotnet 4)

Редактировать: я пытался использовать msbuild 3.5 во «внешнем» вызове и вызывать msbuild (используя задачу <msbuild>) 4.0 для тех целей, для которых требуетсяновый функционал.С этим тоже не повезло - внутренний вызов выдает следующее сообщение об ошибке:

ошибка MSB4062: не удалось загрузить файл или сборку 'Microsoft.Build.Tasks.v4.0, версия = 4.0.0.0 илиодна из его зависимостей.Система не может найти указанный файл.Убедитесь, что объявление правильное и что сборка и все ее зависимости доступны.

Ответы [ 2 ]

5 голосов
/ 20 марта 2014

Параметр для передачи в msbuild:

/p:TargetFrameworkVersion="v3.5"

Это доступно в MSBuild версии 3.5 и выше (3.5, 4.0, 2012, 2013 и т. Д.). Он изменяет свойство в скрипте msbuild для этой сборки.

Дополнительное замечание: вы можете указать все целевые версии, установленные на компьютере, для каждой из версий MSBuild. Обычно вы не можете сделать это в Visual Studio (например, использовать 4.5.1 в 2010 году), однако MSBuild 4.0 (vs2010) примет его как значение свойства и будет использовать его.

3 голосов
/ 30 мая 2012

Попробуйте:

/p:TargetFramework=v3.5

Целевая версия фреймворка может быть v2.0, v3.0 или v3.5.Если вы являетесь эталонными сборками, которые не входят в заданную целевую версию платформы, то вы получите ошибки / предупреждения во время сборки.

Ссылки:

...