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


Зарезервированные и стандартные свойства MSBuild

В MSBuild предусмотрен набор предопределенных свойств для сохранения информации о файле проекта и двоичных файлах MSBuild. Значения этих свойств вычисляются так же, как и значения других свойств MSBuild. Например, для использования свойства MSBuildProjectFile необходимо ввести $(MSBuildProjectFile)

Для определения зарезервированных и известных свойств в MSBuild используются значения, приведенные в следующей таблице. Зарезервированные свойства переопределить нельзя, тогда как известные свойства можно переопределить с помощью свойств с идентичными именами (свойства среды, глобальные свойства или свойства, определенные в файле проекта).

Зарезервированные и известные свойства

В следующей таблице приведены предопределенные свойства, предусмотренные в MSBuild.

Свойство

Описание

Зарезервированное или известное

MSBuildBinPath

Абсолютный путь к папке, где находятся используемые в данный момент двоичные файлы MSBuild (например, C:\Windows\Microsoft.Net\Framework\номер_версии). Этим свойством удобно пользоваться в случае, когда требуется сослаться на файлы в каталоге MSBuild.

Не включайте в это свойство завершающую обратную косую черту.

Зарезервированное

MSBuildExtensionsPath

Введено в .NET Framework 4: разницы между значениями по умолчанию MSBuildExtensionsPath и MSBuildExtensionsPath32 нет. Переменной среды MSBUILDLEGACYEXTENSIONSPATH можно присвоить значение, отличное от null, чтобы включить поведение, соответствующее значению по умолчанию MSBuildExtensionsPath в предыдущих версиях.

В .NET Framework 3.5 и более ранних версиях значение по умолчанию MSBuildExtensionsPath указывает на путь к вложенной папке MSBuild в папке \Program Files или \Program Files (x86), в зависимости от разрядности текущего процесса. Например, для 32-разрядного процесса на 64-разрядном компьютере это свойство указывает папку на \Program Files (x86). Для 64-разрядного процесса на 64-разрядном компьютере это свойство указывает на папку \Program Files.

Не включайте в это свойство завершающую обратную косую черту.

Это расположение хорошо подходит для хранения пользовательских файлов целей. Например, файлы целей можно установить в папку \Program Files\MSBuild\MyFiles\Northwind.targets, а затем импортировать в файлы проекта с помощью следующего XML-кода:

<Import Project="$(MSBuildExtensionsPath)\MyFiles\Northwind.targets"/>

Известное

MSBuildExtensionsPath32

Путь к вложенной папке MSBuild в папке \Program Files\ или \Program Files (x86). Этот путь всегда указывает на папку \Program Files на 32-разрядном компьютере и на папку \Program Files (x86) на 64-разрядном компьютере. См. также MSBuildExtensionsPath и MSBuildExtensionsPath64.

Не включайте в это свойство завершающую обратную косую черту.

Известное

MSBuildExtensionsPath64

Путь к вложенной папке MSBuild в папке \Program Files. На 64-разрядном компьютере этот путь всегда указывает на папку \Program Files. На 32-разрядном компьютере этот путь будет пустым. См. также MSBuildExtensionsPath и MSBuildExtensionsPath32.

Не включайте в это свойство завершающую обратную косую черту.

Известное

MSBuildLastTaskResult

Значение true, если предыдущая задача завершилась без ошибок (даже если были предупреждения), или значение false, если в предыдущей задаче были ошибки. Обычно, если в задаче возникает ошибка, эта ошибка — последнее, что происходит в проекте. Следовательно, это свойство никогда не принимает значение false, кроме как в следующих сценариях:

Зарезервированное

MSBuildNodeCount

Максимальное количество параллельных процессов, используемых при сборке. Это значение, заданное для параметра /maxcpucount в командной строке. Если параметр /maxcpucount указан без задания значения, MSBuildNodeCount указывает количество процессоров в компьютере. Дополнительные сведения см. в разделах Справочник по командной строке MSBuild и Параллельное построение нескольких проектов с помощью MSBuild.

Зарезервированное

MSBuildProgramFiles32

Расположение 32-разрядной папки программы; например, C:\Program Files (x86).

Не включайте в это свойство завершающую обратную косую черту.

Зарезервированное

MSBuildProjectDefaultTargets

Полный список целей, указанных в атрибуте DefaultTargets элемента Project. Например, для следующего элемента Project свойство MSBuildDefaultTargets будет иметь значение A;B;C:

<Project DefaultTargets="A;B;C" >

Зарезервированное

MSBuildProjectDirectory

Абсолютный путь к каталогу, где располагается файл проекта, например C:\MyCompany\MyProduct.

Не включайте в это свойство завершающую обратную косую черту.

Зарезервированное

MSBuildProjectDirectoryNoRoot

Значение свойства MSBuildProjectDirectory, за исключением корневого диска.

Не включайте в это свойство завершающую обратную косую черту.

Зарезервированное

MSBuildProjectExtension

Расширение имени файла проекта, включая точку, например ".proj".

Зарезервированное

MSBuildProjectFile

Полное имя файла проекта, включая расширение, например "MyApp.proj".

Зарезервированное

MSBuildProjectFullPath

Абсолютный путь к файлу проекта и его полное имя, включая расширение, например "C:\MyCompany\MyProduct\MyApp.proj".

Зарезервированное

MSBuildProjectName

Имя файла проекта без расширения, например "MyApp".

Зарезервированное

MSBuildStartupDirectory

Абсолютный путь к каталогу, из которого вызывается MSBuild. С помощью этого свойства можно собирать все, что находится ниже конкретной точки в дереве проекта, без создания файлов dirs.proj в каждом каталоге. Вместо этого у вас будет только один проект, — например, c:\traversal.proj, как показано ниже:

<Project ...>
    <ItemGroup>
        <ProjectFiles  
           Include="$
           (MSBuildStartupDirectory)
           **\*.csproj"/>
    </ItemGroup>
    <Target Name="build">
        <MSBuild    
        Projects="@(ProjectFiles)"/>
    </Target>
</Project>

Чтобы выполнить сборку в любой точке дерева, введите следующее:

msbuild c:\traversal.proj

Не включайте в это свойство завершающую обратную косую черту.

Зарезервированное

MSBuildThisFile

Часть MSBuildThisFileFullPath, представляющая собой имя и расширение файла.

Зарезервированное

MSBuildThisFileDirectory

Часть MSBuildThisFileFullPath, представляющая собой каталог.

Включите в путь завершающую обратную косую черту.

Зарезервированное

MSBuildThisFileDirectoryNoRoot

Часть MSBuildThisFileFullPath, представляющая собой каталог, за исключением корневого диска.

Включите в путь завершающую обратную косую черту.

Зарезервированное

MSBuildThisFileExtension

Часть MSBuildThisFileFullPath, представляющая собой расширение имени файла.

Зарезервированное

MSBuildThisFileFullPath

Абсолютный путь файла проекта или файла целей, содержащего запущенную цель.

Совет

В файле целей можно указать относительный путь, являющийся относительным для файла целей и не являющийся относительным для файла исходного проекта.

Зарезервированное

MSBuildThisFileName

Часть MSBuildThisFileFullPath, представляющая собой имя файла без расширения.

Зарезервированное

MSBuildToolsPath

Путь установки версии MSBuild, связанной со значением MSBuildToolsVersion.

Не включайте в путь завершающую обратную косую черту.

Это свойство нельзя переопределить.

Зарезервированное

MSBuildToolsVersion

Версия набора инструментов MSBuild, используемая для сборки проекта.

Примечание

Набор инструментов MSBuild состоит из задач, целей и средств, используемых для сборки приложения.Средства включают компиляторы csc.exe и vbc.exe.Дополнительные сведения см. в разделах Набор инструментов MSBuild (ToolsVersion) и Стандартные и настраиваемые конфигурации наборов инструментов.

Зарезервированное

См. также

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

Свойства MSBuild

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

Справочные сведения о MSBuild