Общие макросы для команд и свойств MSBuild
В зависимости от параметров установки Visual Studio может сделать сотни макросов доступными для вас в проекте Visual Studio на основе .vcxproj
MSBuild. Макросы соответствуют свойствам MSBuild, заданным по умолчанию или файлам .props
.targets
или параметрам проекта. Эти макросы можно использовать в любом месте диалогового окна Страницы свойств проекта, где допустимы строки. Эти макросы не учитывает регистр.
Просмотр текущих свойств и макросов
Чтобы отобразить все доступные макросы, откройте страницы свойств проекта в главном меню, выбрав "Свойства проекта>". В диалоговом окне "Страницы свойств" выберите запись с макросом. Макрос можно распознать по знаку доллара и скобкам, окружающим его имя.
Например, в левой области выберите "Свойства>конфигурации" каталогов VC++, а затем в правой области выберите "Включить каталоги". Значением для каталогов Include является $(VC_IncludePath);$(WindowsSDK_IncludePath);
.
Знак доллара и скобки, окружающие эти два значения, указывают на то, что они макросы. Расширение этих двух макросов задает каталоги включения для поиска.
Выберите " Включить каталоги " и раскрывающийся список появится в конце строки. Нажмите кнопку раскрывающегося списка, а затем нажмите кнопку "Изменить". В появившемся диалоговом окне "Включить каталоги" нажмите кнопку "Макросы>>".
Это расширяет диалоговое окно, чтобы отобразить текущий набор свойств и макросов, видимых Visual Studio, а также текущее значение для каждого. Дополнительные сведения см. в разделе "Указание определяемых пользователем значений" на странице свойств проекта C++ .
Справа находится список макросов Visual Studio, таких как $(AllowLocalNetworkLoopback). В левой области показано вычисляемое значение свойства include directory. В нижней области показано, какие макросы были развернуты(если таковые имеются), чтобы создать значение свойства каталога. Так как макрос "Включить каталоги" представляет собой сочетание двух других макросов , $(VC_IncludePath) и $(WindowsSDK_IncludePath), нижней панели, помеченной как унаследованные значения, перечисляются эти два макроса.
Список общих макросов
В этой таблице описывается часто используемое подмножество доступных макросов; Здесь еще много не перечислены. Перейдите в диалоговое окно "Макросы" , чтобы просмотреть все свойства и их текущие значения в проекте. Дополнительные сведения о создании и использовании определений свойств MSBuild в качестве макросов в , .targets
а также .vcxproj
файлах см. в .props
разделе "Свойства MSBuild".
Макрос | Description |
---|---|
$(Configuration) |
Имя текущей конфигурации проекта, например "Debug". |
$(DevEnvDir) |
Каталог установки Visual Studio (определяется как диск + путь); включает конечную обратную косую черту (\). |
$(FrameworkDir) |
Каталог, в котором установлена платформа .NET Framework. |
$(FrameworkSDKDir) |
Каталог, в котором установлена платформа .NET Framework. Возможно, платформа .NET Framework были установлены как часть Visual Studio или отдельно. |
$(FrameworkVersion) |
Версия платформы .NET Framework, используемая Visual Studio. В сочетании с $(FrameworkDir) полным путем к версии платформа .NET Framework, используемой Visual Studio. |
$(FxCopDir) |
Путь к файлу fxcop.cmd . Файл fxcop.cmd не установлен во всех выпусках Visual Studio. |
$(IntDir) |
Путь к каталогу, заданному для промежуточных файлов. Если это относительный путь, промежуточные файлы переходят к этому пути, добавленным в каталог проекта. Этот путь должен иметь конечную обратную косую черту (\). Он разрешает значение свойства Промежуточного каталога . Не используйте $(OutDir) для определения этого свойства. |
$(OutDir) |
Путь к каталогу выходных файлов. Если это относительный путь, выходные файлы переходят к этому пути, добавленному в каталог проекта. Этот путь должен иметь конечную обратную косую черту (\). Он разрешает значение свойства Output Directory . Не используйте $(IntDir) для определения этого свойства. |
$(Platform) |
Имя текущей платформы проекта, например Win32. |
$(PlatformShortName) |
Короткое имя текущей архитектуры, например x86 или x64. |
$(ProjectDir) |
Каталог проекта (определяется как диск + путь); включает конечную обратную косую черту (\). |
$(ProjectExt) |
Расширение файла проекта. Включает символ "." перед расширением файла. |
$(ProjectFileName) |
Имя файла проекта (определяется как базовое имя + расширение файла). |
$(ProjectName) |
Базовое имя проекта. |
$(ProjectPath) |
Абсолютный путь к проекту (определяется как диск + путь + базовое имя + расширение файла). |
$(PublishDir) |
Расположение выходных данных для целевого объекта публикации; включает конечную обратную косую черту (\). По умолчанию используется $(OutDir)app.publish\ папка. |
$(RemoteMachine) |
Задайте значение свойства Remote Machine на странице свойств отладки. Дополнительные сведения см. в разделе "Изменение параметров проекта" для конфигурации отладки C/C++. |
$(RootNameSpace) |
Пространство имен (при наличии), содержащее приложение. |
$(SolutionDir) |
Каталог решения (определенный как диск + путь); включает конечную обратную косую черту (\). Он определяется только при сборке решения в интегрированной среде разработки. |
$(SolutionExt) |
Расширение файла решения. Включает символ "." перед расширением файла. Он определяется только при сборке решения в интегрированной среде разработки. |
$(SolutionFileName) |
Имя файла решения (определяется как базовое имя + расширение файла). Он определяется только при сборке решения в интегрированной среде разработки. |
$(SolutionName) |
Базовое имя решения. Он определяется только при сборке решения в интегрированной среде разработки. |
$(SolutionPath) |
Абсолютный путь к решению (определяется как диск + путь + базовое имя + расширение файла). Он определяется только при сборке решения в интегрированной среде разработки. |
$(TargetDir) |
Каталог первичного выходного файла сборки (определяется как диск + путь); включает конечную обратную косую черту (\). |
$(TargetExt) |
Расширение имени основного выходного файла сборки. Включает символ "." перед расширением файла. |
$(TargetFileName) |
Имя основного выходного файла для сборки (определяется как базовое имя + расширение файла). |
$(TargetName) |
Базовое имя основного выходного файла сборки. |
$(TargetPath) |
Абсолютный путь к основному выходному файлу для сборки (определяется как диск + путь + базовое имя + расширение файла). |
$(VCInstallDir) |
Каталог с содержимым C++ из установки Visual Studio. Это свойство содержит версию целевого набора инструментов Microsoft C++ (MSVC), который может отличаться от используемого в узле Visual Studio. Например, при сборке с $(PlatformToolset) = v140 помощью содержит $(VCInstallDir) путь к установке Visual Studio 2015. |
$(VSInstallDir) |
Каталог, в котором установлено программное обеспечение Visual Studio. Это свойство содержит версию целевого набора инструментов Visual Studio, которая может отличаться от основного приложения Visual Studio. Например, при сборке с $(PlatformToolset) = v110 помощью содержит $(VSInstallDir) путь к установке Visual Studio 2012. |
$(WebDeployPath) |
Относительный путь от корня веб-развертывания до каталога выходных данных проекта. |
$(WebDeployRoot) |
Абсолютный путь к расположению <localhost> . Например, c:\inetpub\wwwroot . |
Устаревшие макросы
Система сборки для C++ была значительно изменена между Visual Studio 2008 и Visual Studio 2010. Многие макросы, используемые в предыдущих типах проектов, изменились на новые. Эти макросы больше не используются или заменяются одним или несколькими эквивалентными свойствами или значениями макроса%(item-name)
метаданных элемента. Средство миграции может обновить макросы, помеченные как "перенесенные". Если проект, содержащий макрос, переносится из Visual Studio 2008 или более ранней версии в Visual Studio 2010, Visual Studio преобразует макрос в эквивалентный текущий макрос. Более поздние версии Visual Studio не могут преобразовывать проекты с Visual Studio 2008 и более ранних версий в новые типы проектов. Необходимо преобразовать эти проекты в два этапа — сначала преобразуйте их в Visual Studio 2010, а затем преобразуйте результат для более новой версии Visual Studio. Дополнительные сведения см. в статье Общие сведения о возможных проблемах, возникающих при обновлении.
Макрос | Description |
---|---|
$(InputDir) |
(Перенесено.) Каталог входного файла (определяется как диск + путь); включает конечную обратную косую черту (\). Если проект является входным, этот макрос эквивалентен $(ProjectDir) . |
$(InputExt) |
(Перенесено.) Расширение файла ввода. Включает символ "." перед расширением файла. Если проект является входным, этот макрос эквивалентен $(ProjectExt) . Для исходных файлов это эквивалентно %(Extension) . |
$(InputFileName) |
(Перенесено.) Имя файла ввода (определяется как базовое имя и расширение файла). Если проект является входным, этот макрос эквивалентен $(ProjectFileName) . Для исходных файлов это эквивалентно %(Identity) . |
$(InputName) |
(Перенесено.) Базовое имя входного файла. Если проект является входным, этот макрос эквивалентен $(ProjectName) . Для исходных файлов это эквивалентно %(Filename) . |
$(InputPath) |
(Перенесено.) Абсолютное имя входного файла (определяется как диск + путь + базовое имя + расширение файла). Если проект является входным, этот макрос эквивалентен $(ProjectPath) . Для исходных файлов это эквивалентно %(FullPath) . |
$(ParentName) |
Имя элемента, содержащего данный элемент проекта. Этот макрос — это имя родительской папки или имя проекта. |
$(SafeInputName) |
Имя файла как допустимое имя класса (без расширения файла). Это свойство не имеет точного эквивалента. |
$(SafeParentName) |
Имя непосредственного родителя в допустимом формате. Например, форма является родительским элементом .resx файла. Это свойство не имеет точного эквивалента. |
$(SafeRootNamespace) |
Имя пространства имен, в котором мастера проекта должны добавить код. Это имя пространства имен содержит только символы, которые разрешены в допустимом идентификаторе C++. Это свойство не имеет точного эквивалента. |
См. также
Проекты Visual Studio — C++
Руководство по переносу и обновлению Visual C++
Общие сведения о возможных проблемах, возникающих при обновлении
Общеизвестные метаданные элементов MSBuild