2010-08-05 4 views
1

시작시 서버에 새 버전이 있는지 확인하는 ClickOnce 응용 프로그램이 있습니다. 서버에 이전 버전 (1.9.9.9)을 남기고 최근 새 버전 (2.0.0.0)을 배포했습니다.ClickOnce가 새 버전 양식 서버를 잘못 감지했습니다.

시작 버전 2에서는 사용 가능한 새 버전을 알려주고 1.9.9.9를 다운로드합니다.

이런 일이 발생할 수있는 이유가 있을까요? ClickOnce는 버전이 최신인지 아닌지를 결정할 때 버전 번호 만 보았을 것이라고 생각했습니다.

감사

편집 -이는이 응답들에 대한 버전

EDIT 두

감사를 게시합니다. 앱이 Visual Studio에서 게시되었습니다. 이 같은 정보를 포함하는 루트에 .application 파일을 배치 한 다음 :

<assemblyIdentity name="CokeAudit.application" version="2.0.0.0" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="x86" xmlns="urn:schemas-microsoft-com:asm.v1" /> 

(나는 아직 새 버전으로 업데이트되면서 havent하는) 서버에 존재하는 .application 파일은 .application 파일을 포함 다음과 같은 세부 정보가 포함 된 루트에 :

버전 번호 외에 다른 점은 공개 키 정보뿐입니다. 이는 버전 1.9.9.9에서 인증서가 만료됨에 따라 응용 프로그램의 서명을 비활성화해야했기 때문일 수 있습니까? 이로 인해 업그레이드 문제가 발생합니까?

언제든지 실제 '적절한'인증서로 앱에 서명하지 않았습니다. 이는 항상 Visual Studio에서 생성 된 테스트 중 하나였습니다.

+0

조립 버전이나 게시 버전인가? –

+0

버전 게시 – Sergio

답변

3

ClickOnce는 버전 번호를 확인하지 않고 단순히 ClickOnce 저장소의 최상위 디렉토리에있는 응용 프로그램 매니페스트 파일을 살펴 봅니다. 이는 예를 들어 릴리스의 강제 롤백을 수행해야 할 때 중요합니다.

최상위 수준의 응용 프로그램 매니페스트가 응용 프로그램 파일 아래의 2.0.0.0 디렉토리에있는 응용 프로그램 매니페스트와 동일한 지 확인하십시오. 그렇지 않은 경우 최상위 수준까지 매니페스트를 복사하십시오.

1

신청서를 어떻게 게시하고 있습니까? Visual Studio를 사용하는 경우 새 배포 매니페스트 (.application 파일)를 루트에 배치합니다. 그렇지 않으면 Richard Dunlap이 옳습니다. 직접해야합니다.

사람들이이 문제를 겪은 다른 사례는 웹 서버에서 캐싱이 켜져있는 경우입니다. (필자는 유닉스 나 아파치 서버에 대해서만 들었다고 생각한다.)

관련 문제