Поделиться через


Переопределение параметров ToolsVersion

Можно choice набор инструментов для файла проекта с помощью переключателя /ToolsVersion (или /tv, или сокращенно), присвоив свойству $(ProjectToolsVersion).Это позволяет построение проекта в решении с помощью набора инструментов, отличается от механизма других проектов.Можно также переопределить версию средства использовала задачи MSBuild с помощью установки параметра задачи ToolsVersion.

Переопределение параметров ToolsVersion проектов в построениях из командной строки

Хотя Visual Studio проектов ToolsVersion при построении обычно задается в файле проекта, можно с помощью параметра /ToolsVersion(или /tv) в командной строке на этапе это значение и построение всех проектов и их зависимости проекта на проект с другим набором инструментов.Например:

msbuild.exe someproj.proj /tv:3.5 /p:Configuration=Debug

В этом примере построение всех проектов выполняется с использованием значения ToolsVersion 3.5.(Тем не менее ознакомьтесь с подразделом "Очередность применения" далее в этом разделе.)

Если в командной строке используется ключ /tv, можно в отдельных проектах использовать дополнительно свойство $(ProjectToolsVersion), чтобы создать их с другим значением ToolsVersion по сравнению с остальными проектами в решении.

Переопределение значения ToolsVersion с использованием параметра ToolsVersion в задаче MSBuild

Задача MSBuild — основное средство для создания одного проекта из другого.Чтобы в задаче MSBuild можно было создать проект со значением ToolsVersion, отличающимся от значения, заданного в проекте, предоставляется дополнительный параметр задачи с именем ToolsVersion.В следующем примере показано, как использовать этот параметр.

  1. Создайте файл с именем projectA.proj файла и содержат следующий код:

    <Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003"
    ToolsVersion="4.0">
    
        <Target Name="go" > 
            <Message Text="projectA.proj" />
            <Message Text="MSBuildToolsVersion: $(MSBuildToolsVersion)" />
            <Message Text="MSBuildToolsPath:    $(MSBuildToolsPath)" />
    
            <MSBuild Projects="projectB.proj"
                ToolsVersion="2.0"
                Targets="go" />
        </Target>
    </Project>
    
  2. Создать другое с именем projectB.proj файла и содержат следующий код:

    <Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003"
    ToolsVersion="4.0">
    
        <Target Name="go">
            <Message Text="projectB.proj" />
            <Message Text="MSBuildToolsVersion: $(MSBuildToolsVersion)" />
            <Message Text="MSBuildToolsPath:    $(MSBuildToolsPath)" />
        </Target>
    </Project>
    
  3. Введите следующую команду в командной строке:

    msbuild projectA.proj /t:go /toolsversion:3.5
    
  4. Следующий результат.Для projectA, параметр /toolsversion:3.5 в командной строке переопределяет параметр ToolsVersion=4.0 в теге Project.

    метод ProjectB вызывается задачей в projectA.Эта задача имеет ToolsVersion=2.0, которая переопределяет другие параметры ToolsVersion для projectB.

    Output:
      projectA.proj
      MSBuildToolsVersion: 3.5
      MSBuildToolsPath:    C:\Windows\Microsoft.NET\Framework\v3.5
    
      projectB.proj
      MSBuildToolsVersion: 2.0
      MSBuildToolsPath:    C:\Windows\Microsoft.NET\Framework\v2.0.50727
    

Очередность применения

Порядок приоритетов от самого высокого до самого низкого, задает ToolsVersion, используемый при построении проекта выглядит следующим образом:

  1. Атрибут ToolsVersion в задаче MSBuild, используемой для построения проекта, если таковые имеются.

  2. Параметр /toolsversion (или /tv), которое используется в команде msbuild.exe, если таковые имеются.

  3. Атрибут ToolsVersion элемента Проект в файле проекта.

  4. Версия набора инструментов, заданная по умолчанию в файле MSBuild.exe.config.

  5. Версия набора инструментов, заданная по умолчанию в реестре.Дополнительные сведения см. в разделе Стандартные и настраиваемые конфигурации наборов инструментов.

Пункты 1, 2 и 3 соответствуют свойствам:

  • Атрибут свойств в задаче MSBuild.

  • Ключ /p: в файле msbuild.exe.

  • Тег свойства в файле проекта.

См. также

Основные понятия

Набор инструментов MSBuild (ToolsVersion)

Стандартные и настраиваемые конфигурации наборов инструментов

Другие ресурсы

MSBuild: обзор настройки для различных версий

Основные возможности MSBuild