2

내 이전 웹 응용 프로그램의 대부분은 피라미드 (python) 프레임 워크를 사용하여 만들었습니다. 피라미드를 사용하면 개발 또는 프로덕션 모드로 응용 프로그램을 실행할 수 있습니다. 이는 응용 프로그램의 시작 인수 중 하나로서 production.ini 또는 development.ini 설정 파일의 위치를 ​​제공하여 수행됩니다.asp.net 생산/개발 환경

이 파일에는 로깅 수준, 오류보고 및 데이터베이스 연결과 관련된 설정이 들어 있습니다. .net 세계에서 이러한 파일과 동일한 것은 web.config 파일 인 것으로 보입니다. 나는 단순히 새로운 web.config를 만들고, 적절한 이름으로 바꾸고, 응용 프로그램을 다시 시작하여 다른 실행 환경을 만들 수 있다고 가정합니다.

제 질문은 내 앱이 올바른 * .config 파일을 대상으로 삼을 수있는 방법입니다 (가상적으로 production.config 및 development.config라고 부릅니다).

답변

1

: 변형 파일의 Web.config에 대해서 기본적인 예는 연결 문자열을 수정하는이, 릴리스 빌드에 대해 다른 연결 문자열을 사용하는 것입니다. 필자는 비슷한 상황에 이것을 사용하고 하나의 매개 변수 파일 (XML, 파일 경로, 텍스트 파일 등이 무엇이든 상관없이 대체 될 파일)과 다중 매개 변수 파일을 설정하는 데 도움을주었습니다. [declareParam 및 setParam here.

구조를 너무 많이 모른 채 기본적으로이 작업을 수행 할 것입니다.

msdeploy -verb:sync -source:contentPath=c:\pathtosite\root -dest:package=c:\package.zip -declareParamFile=c:\packageparameters.xml" 

development.xml 
staging.xml 
production.xml 

당신이 뭔가 (에 따라있을 것입니다 귀하의 배포를 위해 다음 (Here이 매개 변수 파일 설정의 좋은 설명입니다) 등 각 환경에 연관된 매개 변수 파일 만들기 사용하려는 공급자)

msdeploy -verb:sync -source:package=c:\package.zip -dest:contentPath=c:\inetpub\production -setParamFile=c:\<environment>.xml 

공급자의 수는 꽤 광범위합니다. 콘텐츠 경로는 간단한 예일 뿐이지 만 IIS, IIS 등에서 직접 가져올 수 있습니다. 매우 견고합니다.

0

다른 web.config 파일을 지정하는 방법이 없습니다. 그러나 .NET 4.0부터는 web.config transforms라는 것을 사용할 수 있습니다.이 스크립트는 build의 기본 web.config를 수정합니다. Web.Debug.Config 및 Web.Release.Config를 사용할 수 있으며 사용중인 빌드 구성에 따라 적용됩니다. 이것들은 일반적인 web.config 파일이 아니라 파일을 변환하여 기본 web.config를 수정한다는 점에 유의하십시오.

기본 아이디어에 대한 자세한 내용과 연습은 here on MSDN을 참조하십시오. 당신은 MSDeploy보고 할 수 있습니다

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <connectionStrings> 
     <add name="MyDB" connectionString="ReleaseSQLServer" 
      xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> 
    </connectionStrings> 
</configuration>