2010-03-01 3 views
12

내 용어가 잘못되면 죄송합니다. 내 코드에 #if TEST_APP을 썼다. 이제 TEST_APP를 정의하고 싶습니다. 비주얼 스튜디오 2010을 사용하여 어떻게 설정합니까? 이것은 Windows 양식 응용 프로그램입니다.C# visual studios에서 전처리 기 기호를 정의하는 방법

보너스 당신은 나에게의 WinForm 프로젝트 및 웹 프로젝트 프로젝트의 속성 페이지의 작성 탭에서

답변

16

Visual Studio 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다. 빌드 탭을 열면 "조건부 컴파일 기호"필드가 나타납니다. 쉼표로 구분 된 목록이거나 공백으로 구분 된 목록입니다. 일반적으로 사용되는 기호 인 DEBUG 및 TRACE에 대한 2 개의 확인란이 있습니다. 웹 프로젝트의

당신이 "WEB_PROJECT"과 윈폼 분야를 설정할 수 있습니다 "WINFORMS_PROJECT"

+1

프로젝트 파일 (* .csproj)에서 직접 PropertyGroup 내에' DEBUG; TRACE '와 같은 것들을 설정할 수도 있습니다. – Jeyenne

7

에 설정되어있는 심볼의 이름을 말해 "조건부 컴파일 기호를 찾을 수있는 경우 "설정.

웹 및 winform 응용 프로그램에 기본적으로 정의 된 다른 기호가 있다고 나는 생각하지 않습니다. 이 점은 프로젝트 자체에 설정되어 있으며 클래스 라이브러리에는 영향을 미치지 않으므로 프로젝트의 모든 코드가 Windows 응용 프로그램에 있는지 여부를 실제로 알 수 있기를 기대합니다. 이것을 사용하는 것에 대해 당신은 무엇을 생각하고 있었습니까?

+0

(내가 GCC 생각하고)하고 실패하고 : 나는이 같은 코드를 작성할 수 있도록, 같은 C# 언어 버전 같은 주변 조건에 따라 조건부 컴파일을 사용하도록 설정하는 방법을 보여줍니다 이러한 대답을보고 난 내 웹 lib 대신 내 파일을 포함하는 참조를 실현. 죄송합니다. 그 때 나는 같은 부분 클래스에서 메서드를 정의하기 위해 F # 및 C#을 얻으려고 시도했습니다. –

+0

나는 앱과 웹 정의가 필요 없다. C++이 알고 있기 때문에 나는 궁금했다. 나는 애플 리케이션에서 일부 백엔드 코드를 테스트 중이므로 웹 애플리케이션에서 수행 할 수없는 변경 사항을 수정할 수있다 (변경 사항은 다음 경우에는 허용되지 않는다.) 이미 실행중인 프로세스에 연결된 디버거 –

+0

웹 애플리케이션에서 이것을 사용했다. 디버그에서 캐싱을 가능하게합니다. 릴리스 캐싱 로직에서 디버그가 비활성화되었지만 캐싱 로직을 디버그 할 때가 있습니다. 이를 위해 추가 조건부가 편리합니다. (DEBUG | DEBUG_WITH_CACHE) – bob

0

방법 1 :

#define TEST_APP true 
#if TEST_APP == true 
#endif 

방법 2 :

#define TEST_APP 
#if defined(TEST_APP) 
#endif 

출처 : MSDN

0

조건부 컴파일을 통해 동적으로 리플렉션해야하는 경우 빌드 또는 환경 조건을 검토하고 StackOverflow에 How do I set a conditional compile variable의 내 대답을 확인하십시오. APP_TEST -dAPP_TEST를 작성 후

#if CSHARP7 
    ref T pi = ref rg[i], pj = ref rg[j]; 
    var t = pi;     // swap elements: managed pointers 
    pi = pj; 
    pj = t; 
#else 
    var t = rg[i];     // swap elements: clunky 
    rg[i] = rg[j]; 
    rg[j] = t; 
#endif 
관련 문제