답변:
아니, 당신이 몇 가지 일을하지 않으면 그렇지 않습니다.
여기서 중요한 부분은 DEBUG가 실제로 무엇이며 컴파일러가 확인할 수있는 일종의 상수입니다.
프로젝트 속성을 확인하면 빌드 탭 아래에 세 가지가 있습니다.
이름이 RELEASE 인 그러한 확인란이나 상수 / 기호가 미리 정의되어 있지 않습니다.
그러나 조건부 컴파일 기호라는 텍스트 상자에 해당 이름을 쉽게 추가 할 수 있지만 구성별로 설정되므로 프로젝트 구성을 릴리스 모드로 설정해야합니다.
따라서 기본적으로 텍스트 상자에 추가하지 않으면 #if RELEASE
구성에서 코드가 생성되지 않습니다.
RELEASE
정의되어 있지 않지만 사용할 수 있습니다
#if (!DEBUG)
...
#endif
RELEASE
이 정의 되었는지 궁금해했습니다 .
아니.
디버그 구성에서는 DEBUG
정의 된 상수 (Visual Studio에서 자동으로 정의 됨)가 있지만 릴리스 모드에 대해 정의 된 상수는 없습니다. 빌드중인 프로젝트 설정을 확인하십시오.
프로젝트-> 빌드 에서 [DEBUG 상수 정의]를 선택 하는 것은 모든 파일의 시작 부분에 #define DEBUG를 포함시키는 것과 같습니다.
릴리스 구성에 대한 RELEASE 상수를 정의하려면 다음으로 이동하십시오.
#if (RELEASE) [RequireHttps] #endif
전에는 본 적이 없지만 ...
#if (DEBUG == FALSE)
과
#if (!DEBUG)
나중에 작동합니까?
!
두 번째 예와 같이 운영자 만 작동합니다.
"팝 카탈린"이 맞았습니다. 빌드 유형을 기반으로 정의를 제어하면 많은 유연성이 제공됩니다. 예를 들어, 동일한 솔루션에서 "DEBUG", "DEMO"및 "RELEASE"구성을 모두 가질 수 있습니다. 따라서 두 가지 솔루션으로 중복 프로그래밍 할 필요가 없습니다.
따라서 RELEASE 조건부 컴파일 기호를 정의 할 때 와 동일 #if RELEASE
하거나 #if (RELEASE)
작동합니다 #if DEBUG
.
다음은 "Pop Catalin"게시물에서 발췌 한 것입니다. 릴리스 구성에 대한 RELEASE 상수를 정의하려면 다음으로 이동하십시오. * 프로젝트 특성-> 빌드 * 릴리스 모드 선택 * 조건부 컴파일 기호 텍스트 상자에 RELEASE를 입력하십시오.
나는 이것이 오래된 질문이라는 것을 알고 있지만 TEST 또는 UAT와 같은 DEBUG 및 RELEASE 외부에서 자신의 구성을 만들 수 있다고 언급 할 가치가 있습니다.
그런 다음 프로젝트 속성 페이지의 빌드 탭에서 "조건부 컴파일 기호"를 테스트 (예 : TEST)로 설정하면 다음과 같은 구문을 사용할 수 있습니다.
#if (DEBUG || TEST )
//Code that will not be executed in RELEASE or UAT
#endif
필요한 경우 다른 클라이언트 또는 전체 웹 메소드와 같은 특정 이유로이 구성을 사용할 수 있습니다. 우리는 또한 과거에 일부 명령이 특정 하드웨어에서 문제를 일으킨 적이 있었기 때문에 하드웨어 X에 배포 할 때 앱을 구성했습니다.
조건부 컴파일 타임 기호 (원하는 이름)를 직접 만들 수 있습니다. 프로젝트 속성 상자의 메뉴 옵션에있는 "프로젝트 빌드 대화 상자"로 이동하십시오 : 프로젝트-> [프로젝트 이름] 속성 ...
"C # 코드 파일 맨 위에"정의 할 수도 있습니다. 처럼:
#define RELEASE
// or
#undef RELEASE
#if 문에서 기호를 사용할 수 있습니다.
#if RELEASE
// code ...
#elif …
// code ...
#endif
// or
#if !RELEASE
// code ...
#endif
왜 안돼?
#if RELEASE
#undef DEBUG
#endif
/d:RELEASE
작동합니다. 릴리스 구성 (프로젝트 속성 빌드 탭) 아래의 조건부 컴파일 기호에이를 추가 할 수도 있습니다.
#if !DEBUG
기능과 동일한 기능을 수행합니다#if RELEASE
. 또한,#if DEBUG
다음#else
다음#endif
모드에서 실행하는 다른 코드가 있다면.