2013-11-21 1 views
0

구성을 기반으로 여러 app.config를 사용하는 wpf clickonce 응용 프로그램이 있습니다. 빌드 할 때 올바른 app.config를 출력하지만 게시 할 때 잘못된 app.config를 사용합니다. - 더미 빈 설정 파일ClickOnce가 잘못된 app.config를 게시합니다.

  • 의 App.config :

    여기 내 설정입니다.

  • App.Debug.config - 설정 디버깅
  • App.Test.config - 테스트 설정
  • App.UAT.config - UAT
  • App.Prod.config - 생산 내가 가진

환경 설정을 기반으로 올바른 설정 파일을 적용하는 프로젝트 설정의 "AfterCompile"작업은 훌륭하게 작동합니다. 하지만 VS2012 게시 마법사를 사용하면 구성 설정에 관계없이 더미 구성 파일을 사용합니다.

+0

빌드 후 또는 게시 후 파일을 수동으로 복사/붙여 넣기/수정하지 않아도되는 솔루션을 찾으려고합니다. 자동화 프로세스의 일부이기 때문에이를 게시하려고합니다. – user3018599

답변

0

대신에 BeforeCompile 스크립트를 사용해보십시오. 동일한 것을 경험 했으므로 컴파일하기 전에 App.config 파일을 업데이트해야합니다.

Pre-build 이벤트 명령 줄에서 다음과 같은 것이 필요합니다.

IF "$(ConfigurationName)" == "Development" (
    COPY "$(ProjectDir)App.Development.config" "$(ProjectDir)App.config" 
) 
+0

시도해 보니 소스 파일을 대체하기 때문에 작동하지 않습니다. 파일이 읽기 전용 (TFS에서 체크 아웃되지 않았기 때문에) 인 경우 실패합니다. 내 출력 파일이 모두 정확하므로 게시 명령이 빌드에서 생성 된 출력 파일을 사용하여 게시하지 않는다는 것을 알려줍니다. – user3018599

+0

내 경험에 비추어 볼 때 ClickOnce는 프로젝트 디렉터리에있는 App.config를 사용합니다. SVN과 같은 것을 사용한다면 TFS가 문제를 일으킬 수 있습니다. App.config를 SVN 제어 파일로 만들 수 있습니까? 귀하의 경우 그것은 비어 있으며 소스 제어하에있을 필요는 없습니다. (저는 git/hg 사용자이고 SVN을 사용한 적이 없기 때문에 확실하지 않습니다) – Chris