.Net Framework Standard/WindowsApplication

Visual Studio 조건부 컴파일 기호(전처리, define) 변경에 따른 참조 DLL 경로 자동 변경 입니다.

달빛에취하다 2016. 6. 20. 21:58

# 해당 내용에 대한 것은 샘플 프로젝트를 확인해 주세요.


Visual Studio에서 조건부 컴파일 기호(전처리, define) 변경에 따른 참조 DLL 경로 자동 변경 구성에 관한 내용입니다.


1. 솔루션 구조


샘플 프로젝트는 DLL 프로젝트 와 Main 프로젝트로 나뉘며 DLL 프로젝트는 Main에서 출력파일(DLL.dll)만 참조합니다.


2. DLL 프로젝트의 Class1의 내용으로 조건부 컴파일 기호 별 출력 메세지가 변경됩니다


3. DLL 프로젝트의 조건부 컴파일 기호(DEVELOP 및 QUALITY를 사용하며 나머지는 OPERATION으로 사용합니다.)


4. DLL 프로젝트의 조건부 컴파일 별 폴더를 변경하기 위해 Post Build Event에서 해당 내용을 처리 합니다.


5. Main Project의 .csproj 파일이며 Text 편집기로 수동 편집하여야 합니다.

.csproj 파일을 Text 편집기로 열어 "<HintPath" 으로 검색하여 찾아 적용해 주시면 됩니다.



6. Main Project의 .csproj.user 파일이며 Text 편집기로 수동 편집하여야 합니다.

.csproj.user 파일을 Text 편집기로 열어 "<ReferencePath" 으로 검색하여 찾아 적용해 주시면 됩니다.



# 위 내용을 모두 적용한 경우 하기 내용과 같이 조건부 컴파일 기호를 변경할 경우 자동으로 변경 됩니다.

(* 1~4번은 5,6번 구성을 위한 내용입니다. 기본적으로 정의 되어 있다면 5번과 6번 항목만 적용해 주시면 됩니다. )



* 확인

# 1. 실제 실행하는 Main 프로젝트의 조건부 컴파일 기호가 OPERATION일 경우 참조된 DLL의 경로


# 2. 실제 실행하는 Main 프로젝트의 조건부 컴파일 기호가 QUALITY일 경우 참조된 DLL의 경로




* 전처리로 개발/품질/운영을 관리하는 거래처 때문에 새로 작성한 내용입니다.

 일정에 쫒겨서 라는 핑계로 기존 개발된 자료 소스정리는 뒷전으로 미뤄 두었다가 이번에 담당자분이 바뀌면서 소스 정리 하신다길래 샘플로 작성한 내용 및 프로젝트 입니다.


* 샘플 프로젝트

  1. POST Build Event, Pre Build Event

   - Visual Studio의 경우 기본으로 define 으로 정의된 DEBUG와 TRACE가 있습니다.  Post Build Event 및 Pre Build Event에서 사용되는 Script의  If string contain 확인 문제로 많이 헤메었습니다. ㅠ_ㅠ 

   (기본은 dos나 vba의 script와 비슷합니다.)


  2. 참조한 DLL의 경로를 유동적으로 변경할 수 있습니다.

   - 버전은 달라도 상관없으나 메서드나 클래스 구조는 동일한게 좋습니다. 

    ( 빌드 이전에 IDE - Visual Studio - 에서 적용되는 거라 상관없습니다. )


Reference_PathTest.zip