Share via


MSBuild의 예약된 속성 및 잘 알려진 속성

MSBuild는 프로젝트 파일과 MSBuild 이진 파일에 대한 정보를 저장하는 미리 정의된 속성 집합을 제공합니다. 이러한 속성은 다른 MSBuild 속성과 동일한 방식으로 평가됩니다. 예를 들어, MSBuildProjectFile 속성을 사용하려면 $(MSBuildProjectFile)을 입력합니다.

MSBuild에서는 다음 표에 있는 값을 사용하여 예약된 속성 및 잘 알려진 속성을 미리 정의할 수 있습니다. 예약된 속성은 재정의할 수 없으며, 고급 시나리오를 제외하고는 잘 알려진 속성도 대부분 재정의하면 안 됩니다.

예약된 속성 및 잘 알려진 속성

이 섹션의 표에서는 MSBuild의 미리 정의된 속성을 보여 줍니다. 테이블의 예제 열은 다음 예제 프로젝트 파일(C:\Source\Repos\ConsoleApp1\ConsoleApp1에 있는 것으로 가정)에 연결되며, MSBuild가 특별한 명령줄 옵션 없이 호출되는 경우 프로젝트 파일에서 액세스할 때 이러한 속성이 갖는 값의 예를 보여줍니다.

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>
</Project>
속성 예약됨 또는 잘 알려짐 설명
FrameworkSDKRoot 잘 알려짐 .NET Framework 도구의 루트 폴더 경로입니다. C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\
InnerBuildProperty 잘 알려짐 멀티 타기팅 빌드 차원을 정의하는 속성 이름을 지정합니다(현재 빌드가 그래프 빌드인 경우에만 적용 가능). TargetFramework
InnerBuildPropertyValues 잘 알려짐 InnerBuildProperty의 가능한 값을 보관하는 속성 이름을 지정합니다(현재 빌드가 그래프 빌드인 경우에만 적용 가능). TargetFrameworks
IsGraphBuild 잘 알려짐 그래프 빌드이면 True입니다. 즉, -graphBuild 옵션이 적용됩니다. 이 옵션은 MSBuild가 프로젝트 그래프를 생성하고 빌드한다는 것을 의미합니다. 그래프를 생성하려면 프로젝트 참조를 식별하여 종속성을 구성해야 합니다. 해당 그래프를 빌드하려면 기존 MSBuild 예약과는 달리, 프로젝트 참조를 참조하는 프로젝트보다 먼저 프로젝트 참조를 빌드해야 합니다.
MSBuildAssemblyVersion 예약됨 프로젝트 빌드에 사용된 MSBuild 어셈블리의 버전입니다. 16.0
MSBuildBinPath 예약됨 현재 사용 중인 MSBuild 이진 파일이 있는 폴더의 절대 경로(예: C:\Windows\Microsoft.Net\Framework\<versionNumber>)입니다. 이 속성은 MSBuild 디렉터리에 있는 파일을 참조해야 할 경우에 유용합니다.

이 속성에는 마지막 백슬래시를 포함하지 마세요.
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\Current\Bin
MSBuildDisableFeaturesFromVersion 예약됨 MSBuild 및 Microsoft SDK에서 변경 웨이브를 관리하는 데 사용됩니다.
MSBuildExtensionsPath 잘 알려짐 .NET Framework 4에서는 MSBuildExtensionsPathMSBuildExtensionsPath32의 기본값 사이에 차이가 없음을 정의했습니다. 이전 버전에서 MSBUILDLEGACYEXTENSIONSPATH의 기본값 동작을 사용으로 설정하려면 환경 변수 MSBuildExtensionsPath를 null이 아닌 값으로 설정하면 됩니다.

.NET Framework 3.5 이전에서는 MSBuildExtensionsPath의 기본값이 현재 프로세스의 비트에 따라 \Program Files\ 또는 \Program Files (x86) 폴더 아래 MSBuild 하위 폴더의 경로를 가리킵니다. 예를 들어, 64비트 컴퓨터에 32비트 프로세스인 경우 이 속성은 \Program Files (x86) 폴더를 가리킵니다. 64비트 컴퓨터에 64비트 프로세스인 경우 이 속성은 \Program Files 폴더를 가리킵니다.

이 속성에는 마지막 백슬래시를 포함하지 마세요.

이 위치는 사용자 지정 대상 파일을 넣는 데 유용합니다. 예를 들어, 대상 파일을 \Program Files\MSBuild\MyFiles\Northwind.targets에 설치한 다음, 이 XML 코드를 사용하여 프로젝트 파일로 가져옵니다.

<Import Project="$(MSBuildExtensionsPath)\MyFiles\Northwind.targets"/>
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild
MSBuildExtensionsPath32 잘 알려짐 \Program Files 또는 \Program Files (x86) 폴더 아래에 있는 MSBuild 하위 폴더의 경로입니다. 이 경로는 항상 32비트 머신의 32비트 \Program Files(x86) 폴더와 64비트 머신의 \Program Files를 가리킵니다. MSBuildExtensionsPathMSBuildExtensionsPath64도 참조하세요.

이 속성에는 마지막 백슬래시를 포함하지 마세요.
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild
MSBuildExtensionsPath64 잘 알려짐 \Program Files 폴더 아래에 있는 MSBuild 하위 폴더의 경로입니다. 64비트 컴퓨터의 경우 이 경로는 항상 \Program Files 폴더를 가리킵니다. 32비트 컴퓨터에서는 이 경로가 비어 있습니다. MSBuildExtensionsPathMSBuildExtensionsPath32도 참조하세요.

이 속성에는 마지막 백슬래시를 포함하지 마세요.
C:\Program Files\MSBuild
MSBuildFileVersion 예약됨 프로젝트 빌드에 사용된 MSBuild 어셈블리의 4파트 버전입니다. 16.11.0.30701
MSBuildFrameworkToolsPath 잘 알려짐 현재 실행 중인 MSBuild가 빌드된 .NET Framework 도구의 경로이며 후행 슬래시가 있습니다. C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\
MSBuildFrameworkToolsPath32 잘 알려짐 현재 실행 중인 MSBuild가 빌드된 것과 동일한 프레임워크 버전에 대한 32비트 버전 .NET Framework 도구의 경로이며 후행 슬래시가 있습니다. C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\
MSBuildFrameworkToolsPath64 잘 알려짐 현재 실행 중인 MSBuild가 빌드된 것과 동일한 프레임워크 버전에 대한 64비트 버전 .NET Framework 도구의 경로이며 후행 슬래시가 있습니다. C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\
MSBuildInteractive 예약됨 MSBuild가 대화형으로 실행되어 사용자 입력을 허용하는 경우 true입니다. 이 설정은 -interactive 명령줄 옵션에 의해 제어됩니다. false
MSBuildLastTaskResult 예약됨 이전 작업이 오류 없이(경고가 있어도) 완료되면 true이고, 이전 작업에 오류가 있으면 false입니다. 일반적으로 작업에서 오류가 발생하면 오류는 해당 프로젝트에서 마지막으로 발생하는 항목입니다. 따라서 이 속성의 값은 false를 사용하지 않습니다. 단, 다음 시나리오에서는 제외됩니다.

- Task 요소(MSBuild)ContinueOnError 특성이 WarnAndContinue(또는 true)나 ErrorAndContinue로 설정된 경우

- TargetOnError 요소(MSBuild)가 자식 요소로 포함되어 있는 경우
true
MSBuildNodeCount 예약됨 작성 시 사용되는 동시 프로세스의 최대 수입니다. 이 값은 명령줄에서 -maxcpucount에 대해 지정한 값입니다. 값을 지정하지 않고 /maxcpucount를 지정한 경우 MSBuildNodeCount는 컴퓨터의 프로세서 수를 지정합니다. 자세한 내용은 명령줄 참조병렬로 여러 프로젝트 빌드를 참조하세요. 1
MSBuildOverrideTasksPath 잘 알려짐 파일을 검색 .overridetasks 할 위치로, 사용자 지정 버전의 표준 작업을 제공하는 데 사용할 수 있습니다. MSBuild 작업을 참조하세요.

경로에 마지막 백슬래시를 포함하지 마세요.
MSBuildProgramFiles32 예약됨 32비트 프로그램 폴더의 위치(예: C:\Program Files (x86) )입니다.

이 속성에는 마지막 백슬래시를 포함하지 마세요.
C:\Program Files (x86)
MSBuildProjectDefaultTargets 예약됨 DefaultTargets 요소의 Project 특성에 지정된 대상의 전체 목록입니다. 예를 들어, 다음 Project 요소의 MSBuildDefaultTargets 속성 값이 A;B;C입니다.

<Project DefaultTargets="A;B;C" >
Build
MSBuildProjectDirectory 예약됨 프로젝트 파일이 있는 디렉터리의 절대 경로(예: C:\MyCompany\MyProduct)입니다.

이 속성에는 마지막 백슬래시를 포함하지 마세요.
C:\Source\Repos\ConsoleApp1\ConsoleApp1
MSBuildProjectDirectoryNoRoot 예약됨 MSBuildProjectDirectory 속성 값입니다. 단, 루트 드라이브를 제외합니다.

이 속성에는 마지막 백슬래시를 포함하지 마세요.
Source\Repos\ConsoleApp1\ConsoleApp1
MSBuildProjectExtension 예약됨 마침표가 포함된 프로젝트 파일의 파일 확장명(예: .proj)입니다. .csproj
MSBuildProjectFile 예약됨 파일 확장명이 포함된 프로젝트 파일의 전체 파일 이름(예: MyApp.proj)입니다. ConsoleApp1.csproj
MSBuildProjectFullPath 예약됨 파일 확장명이 포함된 프로젝트 파일의 절대 경로와 전체 파일 이름(예: C:\MyCompany\MyProduct\MyApp.proj)입니다. c:\Source\Repos\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj
MSBuildProjectName 예약됨 파일 확장명이 없는 프로젝트 파일의 파일 이름(예: MyApp)입니다. ConsoleApp1
MSBuildRuntimeType 예약됨 현재 실행 중인 런타임의 형식입니다. MSBuild 15에서 도입되었습니다. MSBuild가 데스크톱 .NET Framework에서 실행 중임을 나타내는 Full, MSBuild가 .NET Core에서 실행 중임을 나타내는 Core(예를 들어 dotnet build에서) 또는 MSBuild가 Mono에서 실행 중임을 나타내는 Mono 값이 정의되어 있지 않을 수 있습니다(MSBuild 15 이전). Full
MSBuildSDKsPath 잘 알려짐 MSBuild가 SDK를 찾는 데 사용하는 경로입니다. C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\Sdks
MSBuildSemanticVersion 예약됨 프로젝트 빌드에 사용된 MSBuild 어셈블리의 전체 semver 2.0 버전입니다. 16.11.0-preview-21302-05+5e37cc992
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

이 속성에는 마지막 백슬래시를 포함하지 마세요.
c:\Source\Repos\ConsoleApp1
MSBuildThisFile 예약됨 MSBuildThisFileFullPath의 파일 이름 및 파일 확장명 부분입니다. ConsoleApp1.csproj
MSBuildThisFileDirectory 예약됨 MSBuildThisFileFullPath의 디렉터리 부분입니다.

경로에 마지막 백슬래시를 포함하세요.
c:\Source\Repos\ConsoleApp1\ConsoleApp1\
MSBuildThisFileDirectoryNoRoot 예약됨 루트 드라이브를 제외한 MSBuildThisFileFullPath의 디렉터리 부분입니다.

경로에 마지막 백슬래시를 포함하세요.
Source\Repos\ConsoleApp1\ConsoleApp1\
MSBuildThisFileExtension 예약됨 MSBuildThisFileFullPath의 파일 확장명 부분입니다. .csproj
MSBuildThisFileFullPath 예약됨 실행하는 대상을 포함하는 프로젝트 또는 대상 파일의 절대 경로입니다.

팁: 대상 파일에 관련되고 원본 프로젝트 파일에는 관련되지 않은 대상 파일의 상대 경로를 지정할 수 있습니다.
c:\Source\Repos\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj
MSBuildThisFileName 예약됨 파일 확장명을 제외한 MSBuildThisFileFullPath의 파일 이름 부분입니다. ConsoleApp1
MSBuildToolsPath 예약됨 MSBuildToolsVersion 값과 연결된 MSBuild 버전의 설치 경로입니다.

경로에 마지막 백슬래시를 포함하지 마세요.

이 속성은 재정의할 수 없습니다.
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\Current\Bin\
MSBuildToolsPath32 잘 알려짐 MSBuildToolsVersion 값과 연결된 32비트 MSBuild 버전의 설치 경로입니다.

경로에 마지막 백슬래시를 포함하지 마세요.

이 속성은 재정의할 수 없습니다.
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\Current\Bin
MSBuildToolsPath64 잘 알려짐 MSBuildToolsVersion 값과 연결된 64비트 MSBuild 버전의 설치 경로입니다.

경로에 마지막 백슬래시를 포함하지 마세요.

이 속성은 재정의할 수 없습니다.
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\Current\Bin\amd64
MSBuildToolsVersion 예약됨 프로젝트 빌드에 사용된 MSBuild 도구 집합의 버전입니다.

참고: MSBuild 도구 집합은 애플리케이션 빌드에 사용되는 작업, 대상 및 도구로 구성됩니다. 도구에는 csc.exevbc.exe와 같은 컴파일러가 포함됩니다. 자세한 내용은 도구 집합(ToolsVersion)표준 및 사용자 지정 도구 집합 구성을 참조하세요.
Current
MSBuildUserExtensionsPath 잘 알려짐 이 경로는 MSBuild 설치 폴더의 위치를 제공합니다. 로컬 사용자별 사용자 지정을 제공하도록 다시 설정할 수 있습니다. 로컬 빌드 사용자 지정을 참조하세요.

경로에 마지막 백슬래시를 포함하지 마세요.
MSBuildVersion 예약됨 프로젝트 빌드에 사용된 MSBuild의 버전입니다.

이 속성은 대체할 수 없습니다. 대체하면 MSB4004 - The 'MSBuildVersion' property is reserved, and can't be modified. 오류 메시지가 반환됩니다.
16.11.0
MSBuildWarningsAsErrors 잘 알려짐 오류로 처리되는 경고 코드의 목록입니다. MSB1234;MSB5678
MSBuildWarningsAsMessages 잘 알려짐 메시지로 처리할 경고 코드 목록입니다. MSB1234;MSB5678
MSBuildWarningsNotAsErrors 잘 알려짐 -warnAsError 스위치가 다른 모든 경고를 오류로 승격하도록 설정된 경우에도 오류로 승격해서는 안 되는 경고 코드 목록입니다. 그렇지 않은 경우에는 아무런 효과가 없습니다. MSB1234;MSB5678
OS 잘 알려짐 Windows에서는 호스트 운영 체제에서 상속됩니다. 가능한 값에는 "Windows_NT" 및 "Unix"가 포함됩니다. 는 Windows 이외의 운영 체제에서 다른 값으로 설정할 수 있습니다.
RoslynTargetsPath 잘 알려짐 Roslyn 컴파일러의 경로입니다. C:\Program Files\Microsoft Visual Studio\2019\MSBuild\Current\Bin\Roslyn
SDK35ToolsPath 잘 알려짐 .NET Framework 3.5 도구의 경로입니다.
SDK40ToolsPath 잘 알려짐 .NET Framework 4.0 도구의 경로입니다. C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\
VsInstallRoot 잘 알려짐 Visual Studio 설치 폴더입니다. C:\Program Files (x86)\Microsoft Visual Studio\2019
WindowsSDK80Path 잘 알려짐
속성 예약됨 또는 잘 알려짐 설명
FrameworkSDKRoot 잘 알려짐 .NET Framework 도구의 루트 폴더 경로입니다. C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\
InnerBuildProperty 잘 알려짐 멀티 타기팅 빌드 차원을 정의하는 속성 이름을 지정합니다(현재 빌드가 그래프 빌드인 경우에만 적용 가능). TargetFramework
InnerBuildPropertyValues 잘 알려짐 InnerBuildProperty의 가능한 값을 보관하는 속성 이름을 지정합니다(현재 빌드가 그래프 빌드인 경우에만 적용 가능). TargetFrameworks
IsGraphBuild 잘 알려짐 그래프 빌드이면 True입니다. 즉, -graphBuild 옵션이 적용됩니다. 이 옵션은 MSBuild가 프로젝트 그래프를 생성하고 빌드한다는 것을 의미합니다. 그래프를 생성하려면 프로젝트 참조를 식별하여 종속성을 구성해야 합니다. 해당 그래프를 빌드하려면 기존 MSBuild 예약과는 달리, 프로젝트 참조를 참조하는 프로젝트보다 먼저 프로젝트 참조를 빌드해야 합니다.
MSBuildAssemblyVersion 예약됨 프로젝트 빌드에 사용된 MSBuild 어셈블리의 버전입니다. 17.0
MSBuildBinPath 예약됨 현재 사용 중인 MSBuild 이진 파일이 있는 폴더의 절대 경로(예: C:\Windows\Microsoft.Net\Framework\<versionNumber>)입니다. 이 속성은 MSBuild 디렉터리에 있는 파일을 참조해야 할 경우에 유용합니다.

이 속성에는 마지막 백슬래시를 포함하지 마세요.
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64
MSBuildDisableFeaturesFromVersion 예약됨 MSBuild 및 Microsoft SDK에서 변경 웨이브를 관리하는 데 사용됩니다.
MSBuildExtensionsPath 잘 알려짐 .NET Framework 4에서는 MSBuildExtensionsPathMSBuildExtensionsPath32의 기본값 사이에 차이가 없음을 정의했습니다. 이전 버전에서 MSBUILDLEGACYEXTENSIONSPATH의 기본값 동작을 사용으로 설정하려면 환경 변수 MSBuildExtensionsPath를 null이 아닌 값으로 설정하면 됩니다.

.NET Framework 3.5 이전에서는 MSBuildExtensionsPath의 기본값이 현재 프로세스의 비트에 따라 \Program Files\ 또는 \Program Files (x86) 폴더 아래 MSBuild 하위 폴더의 경로를 가리킵니다. 예를 들어, 64비트 컴퓨터에 32비트 프로세스인 경우 이 속성은 \Program Files (x86) 폴더를 가리킵니다. 64비트 컴퓨터에 64비트 프로세스인 경우 이 속성은 \Program Files 폴더를 가리킵니다.

이 속성에는 마지막 백슬래시를 포함하지 마세요.

이 위치는 사용자 지정 대상 파일을 넣는 데 유용합니다. 예를 들어, 대상 파일을 \Program Files\MSBuild\MyFiles\Northwind.targets에 설치한 다음, 이 XML 코드를 사용하여 프로젝트 파일로 가져옵니다.

<Import Project="$(MSBuildExtensionsPath)\MyFiles\Northwind.targets"/>
C:\Program Files\Microsoft Visual Studio\2022\MSBuild
MSBuildExtensionsPath32 잘 알려짐 \Program Files 또는 \Program Files (x86) 폴더 아래에 있는 MSBuild 하위 폴더의 경로입니다. 이 경로는 항상 32비트 머신의 32비트 \Program Files(x86) 폴더와 64비트 머신의 \Program Files를 가리킵니다. MSBuildExtensionsPathMSBuildExtensionsPath64도 참조하세요.

이 속성에는 마지막 백슬래시를 포함하지 마세요.
C:\Program Files\Microsoft Visual Studio\2022\MSBuild
MSBuildExtensionsPath64 잘 알려짐 \Program Files 폴더 아래에 있는 MSBuild 하위 폴더의 경로입니다. 64비트 컴퓨터의 경우 이 경로는 항상 \Program Files 폴더를 가리킵니다. 32비트 컴퓨터에서는 이 경로가 비어 있습니다. MSBuildExtensionsPathMSBuildExtensionsPath32도 참조하세요.

이 속성에는 마지막 백슬래시를 포함하지 마세요.
C:\Program Files\MSBuild
MSBuildFileVersion 예약됨 프로젝트 빌드에 사용된 MSBuild 어셈블리의 4파트 버전입니다. 17.4.0.46505
MSBuildFrameworkToolsPath 잘 알려짐 현재 실행 중인 MSBuild가 빌드된 .NET Framework 도구의 경로이며 후행 슬래시가 있습니다. C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\
MSBuildFrameworkToolsPath32 잘 알려짐 현재 실행 중인 MSBuild가 빌드된 것과 동일한 프레임워크 버전에 대한 32비트 버전 .NET Framework 도구의 경로이며 후행 슬래시가 있습니다. C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\
MSBuildFrameworkToolsPath64 잘 알려짐 현재 실행 중인 MSBuild가 빌드된 것과 동일한 프레임워크 버전에 대한 64비트 버전 .NET Framework 도구의 경로이며 후행 슬래시가 있습니다. C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\
MSBuildInteractive 예약됨 MSBuild가 대화형으로 실행되어 사용자 입력을 허용하는 경우 true입니다. 이 설정은 -interactive 명령줄 옵션에 의해 제어됩니다. false
MSBuildLastTaskResult 예약됨 이전 작업이 오류 없이(경고가 있어도) 완료되면 true이고, 이전 작업에 오류가 있으면 false입니다. 일반적으로 작업에서 오류가 발생하면 오류는 해당 프로젝트에서 마지막으로 발생하는 항목입니다. 따라서 이 속성의 값은 false를 사용하지 않습니다. 단, 다음 시나리오에서는 제외됩니다.

- Task 요소(MSBuild)ContinueOnError 특성이 WarnAndContinue(또는 true)나 ErrorAndContinue로 설정된 경우

- TargetOnError 요소(MSBuild)가 자식 요소로 포함되어 있는 경우
true
MSBuildNodeCount 예약됨 작성 시 사용되는 동시 프로세스의 최대 수입니다. 이 값은 명령줄에서 -maxcpucount에 대해 지정한 값입니다. 값을 지정하지 않고 /maxcpucount를 지정한 경우 MSBuildNodeCount는 컴퓨터의 프로세서 수를 지정합니다. 자세한 내용은 명령줄 참조병렬로 여러 프로젝트 빌드를 참조하세요. 1
MSBuildOverrideTasksPath 잘 알려짐 파일을 검색 .overridetasks 할 위치로, 사용자 지정 버전의 표준 작업을 제공하는 데 사용할 수 있습니다. MSBuild 작업을 참조하세요.

경로에 마지막 백슬래시를 포함하지 마세요.
MSBuildProgramFiles32 예약됨 32비트 프로그램 폴더의 위치(예: C:\Program Files (x86) )입니다.

이 속성에는 마지막 백슬래시를 포함하지 마세요.
C:\Program Files (x86)
MSBuildProjectDefaultTargets 예약됨 DefaultTargets 요소의 Project 특성에 지정된 대상의 전체 목록입니다. 예를 들어, 다음 Project 요소의 MSBuildDefaultTargets 속성 값이 A;B;C입니다.

<Project DefaultTargets="A;B;C" >
Build
MSBuildProjectDirectory 예약됨 프로젝트 파일이 있는 디렉터리의 절대 경로(예: C:\MyCompany\MyProduct)입니다.

이 속성에는 마지막 백슬래시를 포함하지 마세요.
C:\Source\Repos\ConsoleApp1\ConsoleApp1
MSBuildProjectDirectoryNoRoot 예약됨 MSBuildProjectDirectory 속성 값입니다. 단, 루트 드라이브를 제외합니다.

이 속성에는 마지막 백슬래시를 포함하지 마세요.
Source\Repos\ConsoleApp1\ConsoleApp1
MSBuildProjectExtension 예약됨 마침표가 포함된 프로젝트 파일의 파일 확장명(예: .proj)입니다. .csproj
MSBuildProjectFile 예약됨 파일 확장명이 포함된 프로젝트 파일의 전체 파일 이름(예: MyApp.proj)입니다. ConsoleApp1.csproj
MSBuildProjectFullPath 예약됨 파일 확장명이 포함된 프로젝트 파일의 절대 경로와 전체 파일 이름(예: C:\MyCompany\MyProduct\MyApp.proj)입니다. c:\Source\Repos\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj
MSBuildProjectName 예약됨 파일 확장명이 없는 프로젝트 파일의 파일 이름(예: MyApp)입니다. ConsoleApp1
MSBuildRuntimeType 예약됨 현재 실행 중인 런타임의 형식입니다. MSBuild 15에서 도입되었습니다. MSBuild가 데스크톱 .NET Framework에서 실행 중임을 나타내는 Full, MSBuild가 .NET Core에서 실행 중임을 나타내는 Core(예를 들어 dotnet build에서) 또는 MSBuild가 Mono에서 실행 중임을 나타내는 Mono 값이 정의되어 있지 않을 수 있습니다(MSBuild 15 이전). Full
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

이 속성에는 마지막 백슬래시를 포함하지 마세요.
c:\Source\Repos\ConsoleApp1
MSBuildThisFile 예약됨 MSBuildThisFileFullPath의 파일 이름 및 파일 확장명 부분입니다. ConsoleApp1.csproj
MSBuildThisFileDirectory 예약됨 MSBuildThisFileFullPath의 디렉터리 부분입니다.

경로에 마지막 백슬래시를 포함하세요.
c:\Source\Repos\ConsoleApp1\ConsoleApp1\
MSBuildThisFileDirectoryNoRoot 예약됨 루트 드라이브를 제외한 MSBuildThisFileFullPath의 디렉터리 부분입니다.

경로에 마지막 백슬래시를 포함하세요.
Source\Repos\ConsoleApp1\ConsoleApp1\
MSBuildThisFileExtension 예약됨 MSBuildThisFileFullPath의 파일 확장명 부분입니다. .csproj
MSBuildThisFileFullPath 예약됨 실행하는 대상을 포함하는 프로젝트 또는 대상 파일의 절대 경로입니다.

팁: 대상 파일에 관련되고 원본 프로젝트 파일에는 관련되지 않은 대상 파일의 상대 경로를 지정할 수 있습니다.
c:\Source\Repos\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj
MSBuildThisFileName 예약됨 파일 확장명을 제외한 MSBuildThisFileFullPath의 파일 이름 부분입니다. ConsoleApp1
MSBuildToolsPath 예약됨 MSBuildToolsVersion 값과 연결된 MSBuild 버전의 설치 경로입니다.

경로에 마지막 백슬래시를 포함하지 마세요.

이 속성은 재정의할 수 없습니다.
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64
MSBuildToolsPath32 잘 알려짐 MSBuildToolsVersion 값과 연결된 32비트 MSBuild 버전의 설치 경로입니다.

경로에 마지막 백슬래시를 포함하지 마세요.

이 속성은 재정의할 수 없습니다.
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin
MSBuildToolsPath64 잘 알려짐 MSBuildToolsVersion 값과 연결된 64비트 MSBuild 버전의 설치 경로입니다.

경로에 마지막 백슬래시를 포함하지 마세요.

이 속성은 재정의할 수 없습니다.
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64
MSBuildToolsVersion 예약됨 프로젝트 빌드에 사용된 MSBuild 도구 집합의 버전입니다.

참고: MSBuild 도구 집합은 애플리케이션 빌드에 사용되는 작업, 대상 및 도구로 구성됩니다. 도구에는 csc.exevbc.exe와 같은 컴파일러가 포함됩니다. 자세한 내용은 도구 집합(ToolsVersion)표준 및 사용자 지정 도구 집합 구성을 참조하세요.
Current
MSBuildSDKsPath 잘 알려짐 MSBuild가 SDK를 찾는 데 사용하는 경로입니다. C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Sdks
MSBuildSemanticVersion 예약됨 프로젝트 빌드에 사용된 MSBuild 어셈블리의 전체 semver 2.0 버전입니다. 17.4.0-preview-22465-05+6033e4c95
MSBuildUserExtensionsPath 잘 알려짐 이 경로는 MSBuild 설치 폴더의 위치를 제공합니다. 로컬 사용자별 사용자 지정을 제공하도록 다시 설정할 수 있습니다. 로컬 빌드 사용자 지정을 참조하세요.

경로에 마지막 백슬래시를 포함하지 마세요.
MSBuildVersion 예약됨 프로젝트 빌드에 사용된 MSBuild의 버전입니다.

이 속성은 대체할 수 없습니다. 대체하면 MSB4004 - The 'MSBuildVersion' property is reserved, and can't be modified. 오류 메시지가 반환됩니다.
17.4.0
MSBuildWarningsAsErrors 잘 알려짐 오류로 처리되는 경고 코드의 목록입니다. MSB1234;MSB5678
MSBuildWarningsAsMessages 잘 알려짐 메시지로 처리할 경고 코드 목록입니다. MSB1234;MSB5678
MSBuildWarningsNotAsErrors 잘 알려짐 -warnAsError 스위치가 다른 모든 경고를 오류로 승격하도록 설정된 경우에도 오류로 승격해서는 안 되는 경고 코드 목록입니다. 그렇지 않은 경우에는 아무런 효과가 없습니다. MSB1234;MSB5678
OS 잘 알려짐 Windows에서는 호스트 운영 체제에서 상속됩니다. 가능한 값에는 "Windows_NT" 및 "Unix"가 포함됩니다. 는 Windows 이외의 운영 체제에서 다른 값으로 설정할 수 있습니다.
RoslynTargetsPath 잘 알려짐 Roslyn 컴파일러의 대상 경로입니다. C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\Roslyn
SDK35ToolsPath 잘 알려짐 .NET Framework 3.5 도구의 경로입니다.
SDK40ToolsPath 잘 알려짐 .NET Framework 4.0 도구의 경로입니다. C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\
VsInstallRoot 잘 알려짐 Visual Studio 설치 폴더입니다. C:\Program Files\Microsoft Visual Studio\2022
WindowsSDK80Path 잘 알려짐 Windows 8 SDK의 경로입니다.

C++ 프로젝트 관련 속성

다음 속성은 다양한 C++ 도구 집합 버전 및 대상 운영 체제에 대한 C++ MSBuild 가져오기 파일(예: .props.targets 파일)의 경로를 나타냅니다. 이러한 폴더에 있는 파일은 C++ 빌드 인프라를 나타내며 MSBuild를 사용하여 C++ 프로젝트를 빌드하는 데 필수적입니다.

속성 예약됨 또는 잘 알려짐 설명
AndroidTargetsPath 잘 알려짐 Android 빌드용 C++ MSBuild 가져오기 파일의 경로입니다. C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Microsoft\MDD\Android\V150\
iOSTargetsPath 잘 알려짐 iOS 빌드용 C++ MSBuild 가져오기 파일의 경로입니다. C:\Program Files\Microsoft Visual Studio\2022\Preview\MSBuild\Microsoft\MDD\iOS\V150\
VCTargetsPath 잘 알려짐 C++ 빌드 시스템을 지원하는 C++ MSBuild 파일의 경로입니다. C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Microsoft\VC\v170\
VCTargetsPath10 잘 알려짐 Visual Studio 2010 도구 집합을 지원하는 C++ MSBuild 파일의 경로입니다. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\
VCTargetsPath11 잘 알려짐 Visual Studio 2012(V110) 도구 집합에 대한 MSBuild 가져오기 파일의 경로입니다. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\
VCTargetsPath12 잘 알려짐 Visual Studio 2013(V120) 도구 집합에 대한 MSBuild 가져오기 파일의 경로입니다. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\
VCTargetsPath14 잘 알려짐 Visual Studio 2015(V140) 도구 집합에 대한 MSBuild 가져오기 파일의 경로입니다. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\

MSBuild 요소와 충돌하는 이름

위의 내용 외에 MSBuild 언어 요소에 해당하는 이름은 사용자 정의 속성, 항목 또는 항목 메타 데이터에 대해 사용할 수 없습니다.

  • VisualStudioProject
  • Target
  • PropertyGroup
  • Output
  • ItemGroup
  • UsingTask
  • ProjectExtensions
  • OnError
  • ImportGroup
  • Choose
  • When
  • Otherwise

참조