2013-06-02 2 views
1

MVC 응용 프로그램을 만들 때, 개발할 때만 exucute하고 싶은 코드 행이 있고, 응용 프로그램을 배포 할 때 비슷한 코드 부분이 있습니다. 예를 들어, 일부 주소로 메일을 보내는 컨트롤러 작업이 있지만 배포하고 테스트 할 때 해당 주소를 다른 것입니다.localhost에서만 코드 실행 (개발 중일 때)

항상 변경하기는 어렵지만 자주 잊어 버립니다.

+0

구성 파일에 플래그를 넣고 로컬 호스트/dev mac hine에 플래그 A를 사용하고 배포 된 버전에 B 플래그를 사용하십시오. 런타임 중에 플래그를 확인하여 메일 대상을 결정하십시오. – thedrs

답변

6

Visual Studio에서는이 작업을 수행 할 수있는 여러 가지 방법을 제공하며 사용하려는 방법은 원하는 작업에 따라 다릅니다.

예를 들어 빌드 대상을 사용하여 원하는 빌드 유형을 지정할 수 있습니다. 릴리스와 디버그가 일반적이지만 다른 것도 만들 수 있습니다. 그런 다음 코드에 #if 전처리 문을 추가하여 선택한 빌드에 따라 작업을 수행 할 수 있습니다.

원하는대로 들릴 수있는 또 다른 방법은 앱 또는 web.config에서 앱 설정을 사용하는 것입니다. 그런 다음 빌드 변환을 사용하여 빌드 유형에 따라 구성을 변환합니다 (예 : Web.Debug.config 또는 Web.Release.config가 표시됨). 사이트를 게시하면 Visual Studio가 자동으로이 변환을 구성에 적용합니다 파일 및 해당 빌드 형식에 대한 원하는 앱 설정을 변경

따라서, 귀하의 예제를 사용하여, 당신은 당신의 Web.config이있을 것입니다 :.

<appSettings> 
    <add key="notifyAddress" value="[email protected]" /> 
</appSettings> 

그런 다음 Web.Release에. 이 변환을 사용하는 구성 :

<appSettings> 
    <add key="notifyAddress" value="[email protected]" 
     xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> 
</appSettings> 

귀하가 보유한 코드 :

string emailAddress = ConfigurationManager.AppSettings["notifyAddress"]; 

이제 사이트를 게시하면 emailAddress가 자동으로 [email protected]을 갖게됩니다.

1

이것이 도움이되는지 확인하십시오 : https://stackoverflow.com/a/4597270/1043824. 권장되는 방법은 config 파일 접근 방식입니다. 비주얼 스튜디오 2010 년

가에서 Request.ServerVariables ("SERVER_SOFTWARE")은 내 Win7에 프로 IIS/VS2010 설치를위한 개발 서버에 대한 아무것도 (널)와 "마이크로 소프트 IIS/7.5"를 반환하지 않습니다.

관련 문제