2014-05-09 6 views
0

사이드로드 프로세스를 통해 배포하는 LOB (기간 업무) Windows 스토어 응용 프로그램 (8.1)을 개발 중이지만 "시스템 전체"설정 (이 경우 URI로 데이터베이스 서버 주소)사이드로드 된 Windows 스토어 앱에는 컴퓨터 전체 설정이 필요합니다.

최종 사용자가 앱을 통해이를 설정하지 못하도록합니다 (사용자 별 로컬 또는 로밍 설정이 필요하기 때문에) - 제품의 다른 설치에는 다른 데이터베이스 문자열이 필요하기 때문에 응용 프로그램이 시스템에 배포 될 때이 설정을 지정하는 것이 이상적입니다.

Windows-Forms 세계에서는 응용 프로그램의 프로그램 파일 폴더에 app.config를 사용하지만 MSDN에서 볼 수있는 한 Windows 스토어의 샌드 박스에는 응용 프로그램과 마찬가지입니다 의 \ 사용자 \ [사용자 이름] 폴더 구조 아래 구조로 설치되어있는 우리 모두는 조금 투박하다 몇 가지의 불구했습니다

...

  • 주소를 코딩하고 일을 열심히 각 고객 배포를위한 새로운 빌드
  • 주소를 하드 코딩하고 DN을 사용합니다. 최종 사용자가 설정의 매력을 통해 설정에 대한 액세스를 허용하고

은 가지고 사용자 별을 저장

  • 를 실제 서버 이름을 가리 키도록 매핑 S (우리는 포트 번호를 변경해야하는 경우 대처할 수 없음) 다른 누구든지이 문제를 해결하고 배포 도중 또는 Windows 8 응용 프로그램의 각 사용자 sandbox'd 설치에 대한 설정을 가져 오는 다른 메커니즘을 통해이를 설정하는 방법을 생각해 내십시오.

  • +2

    하나의 PC에 여러 개의 응용 프로그램이 필요한 경우를 대비하여 "각 고객 별 분기"옵션을 선택하십시오. –

    +0

    생각하지 않으려 고했지만 멋지게 (그리고 상당히 깔끔한 방법으로) 각 배포에 대한 새 빌드 "옵션을 선택하십시오. 고마워요 :) –

    +0

    지점까지 당신은 천 가지로 병합해야하지만, 당신이 sideloading 있다면, 나는 볼륨 관리가 될 것이라고 가정합니다 ... –

    답변

    0

    직접 이러한 시나리오를 찾으려고합니다. 분기 방식을 사용하지 않고 고객이 msbuild를 사용하여 빌드한다고 생각합니다. 당신은 /p:customer=customer1와의 MSBuild를 실행하고

    <ItemGroup Include='%(customer).config'> <Link>app.config</Link> </ItemGroup> 그런 다음 앱에서 당신은 app.config 파일은 그 각각의 고객 설정의 내용을 포함 포함이 프로젝트 파일에 있습니다. 신규 고객이있는 경우 newcustomer.config 파일을 추가하고 msbuild projecfile /p:customer=newcustomer으로 앱을 빌드하거나 모든 * .config 파일을 찾아 프로젝트를 빌드하는 영리한 배치 msbuild를 준비하십시오.