2010-01-11 5 views
7

배포를 위해 ClickOnce를 사용하려고합니다. ClickOnce를 사용하면서 쉽게 달성 할 수 있는지 확신 할 수 없습니다. ClickOnce 설치 관리자를 만들어 클라이언트에 배포하고 각 클라이언트는 자신의 네트워크에 ClickOnce 설치 관리자를 배치합니다. 클라이언트의 각 사용자는 로컬 네트워크에서 클라이언트를 실행합니다.ClickOnce 배포 및 설치 후 구성 파일 변경

응용 프로그램의 구성 파일에 일부 설정이 있습니다. 각 클라이언트는 자체 설정을 갖습니다 (클라이언트 아래의 모든 사용자는 동일한 설정을 사용합니다). 내 이해는 일단 ClickOnce 패키지가 만들어지면 클라이언트가 구성 파일을 변경하여 자신의 설정을 변경할 수 없거나 ClickOnce를 다시 서명해야합니다.

내 이해가 정확합니까? 해결 방법이 있습니까? 응용 프로그램이 ClickOnce 매니페스트에 포함되지 않은 파일의 업데이트 위치에 액세스 할 수 있습니까?

답변

3

3.5 프레임 워크를 타겟팅하는 경우 ClickOnce 배포에 서명 할 필요가 없습니다. 프로젝트 속성의 "서명"탭에서 "ClickOnce 목록에 서명하십시오"가 선택 취소되어 있는지 확인하십시오. 이렇게하면 배포가 생성 된 후 .application 파일을 편집 할 수 있습니다. deploymentProvider 태그의 코드베이스 속성을 변경하십시오.
<deploymentProvider codebase="http://theirserver/.../Foo.application" />

이 경우 응용 프로그램 설정 문제가 해결되지는 않습니다. 배포하려는 파일을 편집하는 경우 의 해시를으로 재생성해야합니다.

클라이언트 설정이 무엇인지 알아? 그렇다면 어쩌면 당신은 각 클라이언트에 대한 개별 설정 파일을 가질 수 있으며 환경 설정 파일을 복사하기 위해 사전 빌드 이벤트로 뭔가를 할 수 있습니까?

의 설정이 클라이언트 구성 파일에이 있습니까? 서버에 설정을 저장하고 url 매개 변수를 통해 전달하거나 응용 프로그램이 시작된 후 웹 서비스 호출과 함께 가져올 수 있습니까?

이러한 경우 작동하지 않으면 배포를 편집 한 후 매니페스트를 다시 만들고 사임 할 수 있도록 클라이언트에 간단한 스크립트 (아마도 Mage 사용)를 제공 할 수 있습니다.

+0

감사합니다. 파일 (설정 파일 또는 사용자 정의 파일과 같은)이 해시에 포함되지 않으면 어떻게됩니까? – Qstonr

+0

배포 할 각 파일이 해시됩니다.해시는 모두 .manifest 파일에 저장됩니다. 파일 해싱을 선택하지 않아도됩니다. 한 번의 클릭으로 작동합니다. – codeConcussion

+0

@codeConcussion 무언가가 변경되면 2015 년에 새로운 버전의 net 프레임 워크에서 요즘을 이루기위한 다른 방법이 있다는 것을 알고 계십니까? – Tuco

1

우리 회사에서는 ClickOnce를 사용하고 있으며 URL에 패키지를 게시해야했습니다. 그러나 귀하의 경우 항상 DNS이라는 이름으로 게시 할 수 있으며 네트워크에서 동일한 DNS 이름을 사용하도록 클라이언트에 알려야하며 항상 작동해야합니다.

+1

그래서 클라이언트는 동일한 DNS 이름과 URL 매개 변수를 통해 전달되는 설정을 사용합니까? – Qstonr

0

하나 더 매우 좋지 않다 솔루션 :

당신은 다른 "옵션 그룹"에 설정 파일을 배치하고 수동으로 ApplicationDeployment.DownloadFileGroup을 사용하여 특정 구성을 다운로드 할 수 있습니다. 하지만, 나에게는 완벽한 솔루션이 아닙니다.

1

내가 최근에 게시 한 블로그가 MSBuild and Multiple environments 인 경우 유용 할 수 있습니다. 각 클라이언트가 자신의 '환경'을 가질 수 있으므로 다양한 구성을 개별적으로 지정할 수 있습니다.

이 방법을 사용한 경우에도 배포에 '서명'할 수 있습니다.

행운을 빈다.