2017-10-29 1 views

답변

1

그 질문은 MSBuild를 기반으로 Visual Studio에서 지원하는 csproj, vbproj, vcxproj 및 기타 프로젝트 유형과 같은 MSBuild 기반 프로젝트와 관련 있다고 가정합니다.

MSBuild를 직접 호출하거나 환경 변수를 사용하여 명령 프롬프트를 사용하여 거의 모든 프로젝트 속성을 설정할 수 있습니다. 당신은 명령을 사용하여 빌드를 시작하는 경우 :

msbuild /t:Build /p:Configuration=Debug;Platform=x64;OtherPropertyToSet=value 

을가 /p:PropertyName=value 또는 /property:PropertyName=value MSBuild를 명령 줄 매개 변수를 사용하여 속성을 통과 할 수있는 것보다. 다른 속성의 경우 MSBuild 명령 줄 매개 변수를 확인하십시오.

환경 변수를 설정하여 프로젝트 속성을 설정할 수도 있습니다. MSBuild 프로젝트 파일 구문을 사용하면 프로젝트 변수 값과 동일한 방식으로 환경 변수 값을 검색 할 수 있습니다. 따라서 원하는 값으로 환경 변수를 설정하는 것보다 속성을 오버라이드 할 수 있다면 프로젝트 속성 값을 설정할 수 있습니다.

MSBuild 프로젝트 파일 구문은 외부 속성 .props.targets을 포함하는 데 사용할 수있는 몇 가지 확장 점을 제공하므로 프로젝트 속성을보다 복잡하게 수정할 수 있습니다. 명령 줄에 설정된 프로젝트 속성을 기반으로 포함될 수 있습니다.

특히 예약 된 MSBuild 속성은 재정의 할 수 없습니다. 현재 목록의 경우 MSBuild Reserved and Well-Known Properties을 참조하십시오.

복잡한 MSBuild 프로젝트가 명령 줄에서 만들어지고 사용되는 예를 보려면 DotNet CoreCLR repo을보고 특히 * .cmd 확장명을 가진 파일을보십시오.

아래에는 프로젝트 디버그를 시작할 실행 파일과 사용할 명령 줄 인수를 결정하는 사용자 파일 조각이 있습니다. /p:PropertyName=value MSBUild 매개 변수를 통해 전달하십시오.

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'"> 
    <StartAction>Program</StartAction> 
    <StartProgram>C:\Windows\System32\ping.exe</StartProgram> 
    <StartArguments>stackoverflow.com</StartArguments> 
    </PropertyGroup> 
</Project> 
+0

죄송합니다. 이것은 VS 경로가있는 명령 프롬프트와 다른 Visual Studio 명령 창에 대한 것입니다. VS에서보기 메뉴, 다른 윈도우, 명령 창으로 이동하십시오. – JCx

관련 문제