msbuild, 조건부 컴파일 기호 정의
나는 맹인일 수 있지만 MSBUILD에 조건부 컴파일 기호를 지정하는 명령 줄이 있습니까?
현재 내 빌드 스크립트에 다음 줄이 있습니다.
SET MSBUILD=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe
SET CONFIG=Debug
%MSBUILD% /p:Configuration=%CONFIG% /p:OutputPath=..\..\output source\MyProject\MyProject.csproj
그리고 조건을 추가하고 싶습니다. Visual Studio에서 프로젝트 속성 => 빌드 => 조건부 컴파일 기호로 이동할 수 있지만 msbuild에 대한 해당 옵션을 보지 못했습니까?
.csproj 파일에 이미 지정된 모든 기호를 완전히 재정 의하여 내 Buildscript의 조건 만 들어가도록 할 수 있는지 알고 있다면 Karma를 보너스로드립니다.
이거 본 적 있어 ? (대부분의 정보는 두 번째 포스트에 있습니다)
/p:DefineConstants="MYSYMBOL1;MYSYMBOL2"
Björn Lasar의이 게시물은 세미콜론 대신 공백을 사용해야했습니다. http://www.linqinpark.net/2009/01/13/MSBuildWithMultipleDefineConstants.aspx
업데이트 : 블로그가 사라졌습니다. 인터넷 아카이브를 통해 검색 :
최근에 일부 빌드를 자동화하기 위해 MSBuild를 직접 사용해야했습니다. 또한 구성에 따라 일부 전 처리기 정의를 구성해야했습니다. 이것은 일반적으로 다음과 같은 인수에 의해 수행됩니다.
"/p:DefineConstants=MY_PREPROC_FLAG"
웹에 그것에 대한 충분한 의견이 있기 때문에 여기에 특별한 것은 없습니다. 오늘은 하나의 플래그가 더 필요했고 IDE에서 알고있는 것과 유사한 명령 줄 구문을 사용했습니다.
"/p:DefineConstants=MY_PREPROC_FLAG;YET_ANOTHER_FLAG"
그러나 이것은 작동하지 않았습니다.
요점은 명령 줄로 프로젝트에 대한 여러 정의를 지원하려면 간단한 공백으로 구분해야한다는 것입니다.
"/p:DefineConstants=MY_PREPROC_FLAG YET_ANOTHER_FLAG"
IDE에서 정의 (세미콜론으로 구분)에 추가됩니다. 알아서 반가워요 ...
답변에서 말한 내용은 C#
코드 및 ASP.NET "코드 숨김"C # 코드에도 유효 합니다. 내용은 ASP.NET 웹 프로젝트 당신이뿐만 아니라 ASPX 페이지에 조건부 컴파일을 수행하려는 경우, 그것은 조건부 (주 내가 삭제 한 페이지의 HTML 렌더링에 약간 다르게 작동 MasterPageFile="..." AutoEventWireup="true" CodeBehind="..." Inherits="..."
은 일반적으로이 <%@ ... %>
선언은 물론) :
<%@ Page Title="MyPage" Language="C#" CompilerOptions="/d:DebugSym1;DebugSym2" %>
<% #if DebugSym1 %>
<h4>Section1</h4>
<% #else %>
<h4>(Section 1 skipped)</h4>
<% #endif %>
<% #if DebugSym2 %>
<h4>Section2</h4>
<% #else %>
<h4>(Section 2 skipped)</h4>
<% #endif %>
당신은 제거 할 경우 DebugSym1
나 DebugSym2
로부터 CompilerOptions
, 다음 #else
의 관련 부분 #if
문이 렌더링됩니다.
이 주제의 완전성을 위해 언급 할 가치가 있으며 시간을 절약 할 수 있다고 생각했습니다. 관심이 있다면 이 기사 에서 더 많은 것을 찾을 수 있습니다 .
/p:DefineConstants
전부 아니면 전무 거래입니다.
추적 기호를 끄려면 다음과 같이 할 수 없습니다. msbuild /p:DefineTrace=false
이미 정의 된 모든 기호를 재정의하려면 무언가를 정의해야합니다. msbuild /p:DefineConstants="RANDOM-SYMBOL"
감사합니다 Michael Stum이 숨겨진 규칙을 지적 했습니다.
참고 URL : https://stackoverflow.com/questions/479979/msbuild-defining-conditional-compilation-symbols
'program story' 카테고리의 다른 글
아나콘다를 사용하여 Python 3.7로 업데이트 (0) | 2020.12.01 |
---|---|
시스템이 정의되지 않았습니다. (0) | 2020.12.01 |
둘러싸 기 끄기 (0) | 2020.11.30 |
memset () 또는 구조체를 0으로 초기화하는 값 초기화? (0) | 2020.11.30 |
아이폰 인터페이스 빌더 : Z- 인덱스, 버튼의 Z- 순서, 이미지, UI 요소 등? (0) | 2020.11.30 |