Используйте MSBuild 3.5 с Visual Studio 2010 - PullRequest
9 голосов
/ 05 мая 2010

Как заставить Visual Studio 2010 использовать MSBuild 3.5 вместо новой 4.0?

Ответы [ 3 ]

13 голосов
/ 06 мая 2010

Я думаю, что вы не можете изменить версию MSBuild, используемую в Visual Studio, без грязного взлома.

ToolsVersion

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

  • Visual Studio 2008 использует ToolsVersion = "3.5"
  • Visual Studio 2010 использует ToolsVersion = "4.0"

Проблема: если вы вручную измените ToolsVersion на 3.5 в файле проекта, Visual Studio 2010 автоматически обновит ToolsVersion файла проекта до 4.0

Взломать

Решение состоит в том, чтобы установить для вашего проекта ToolsVersion значение 3,6 (или любое другое значение или 4,0, если вы действительно хотите переопределить MSBuild 4.0), а затем в реестре создать следующий ключ:

  • Реестр кустов: \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\3.6
  • Имя ключа строки: MSBuildToolsPath
  • Значение ключа строки: .NET Framework 3.5 Install Path (C: \ Windows \ Microsoft.NET \ Framework \ v3.5)

На компьютере, где ToolsVersion неизвестен, будет использоваться ToolsVersion по умолчанию.

Дополнительная информация о определении пользовательского набора инструментов .

1 голос
/ 05 мая 2010

Зачем тебе это? Есть ли что-нибудь 3,5 способное, но 4.0 нет?

Если вы действительно обеспокоены тем, что когда код извлекается на машину, на которой не установлен .NET 4, вы можете использовать MSBuild 3.5 для сборки проектов (csproj). Вам нужно создать файл решения для MSBuild 3.5, так как он не принимает файл sln VS2010.

Когда MSBuild сталкивается с ToolsVersion = "4.0", он обрабатывает его как ToolsVersion = "3.5", а затем все продолжает работать.

Мой проект с открытым исходным кодом #SNMP использует такие приемы, чтобы исходный код мог быть построен на .NET 4, .NET 3.5 и Mono.

0 голосов
/ 05 мая 2010

Вы можете выбрать различные версии среды выполнения из диалогового окна свойств проекта:

альтернативный текст http://img14.imageshack.us/img14/3051/vstargetframework.png

Не уверен, что изменение правил сборки для использования MsBuild 3.5 для целей C # / VB.NET - хорошая идея.

(Приведенные ниже изменения не нужны. Использование файла целей .NET 4 не имеет никаких проблем). Редактировать Попробуйте открыть проект c # с помощью текстового редактора и измените эту строку:

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

к этому:

<Import Project="C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.CSharp.targets" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...