2012-07-26 1 views
1

우리는 Windows XP (회사 내부 문서 관리 시스템)에서 자체 업데이트 Eclipse RCP 응용 프로그램 인 기쁨을 만끽했습니다. 이제 Windows7로 전환 한 후 응용 프로그램이 관리자로 실행되는 경우에만 업데이트가 수행됩니다.이 관리자는 물론 자체 업데이트 응용 프로그램에서 기쁨을 제거합니다. 응용 프로그램이 더 이상이 폴더에 쓸 수 \ 프로그램 파일 (회사 정책 ...) :P2 셀프 프로비저닝 RCP vs. Windows UAC

는 셀프 프로비저닝은 다소 복사/붙여 넣기이 article

에서 설치 폴더가 C에 결합되어 있기 때문에입니다 상승 된 프로세스로 시작하지 않는 한. p2가하는 일은 (최소한 서사시 디버깅 세션 이후에) p2 저장소에서 artifact.xml과 content.xml을 다운로드하여 로컬에서 비교하고 업데이트 계획을 세우는 것입니다. 불행히도 다운로드 한 파일을 저장할 수 없다면 "업데이트 할 내용이 없습니다"라고 간단히 말합니다.

-metadataRepository http://someserver/updatesite 
-artifactRepository http://someserver/updatesite 
-installIUs my.application.id 
-roaming 
-destination "C:\Program Files\MyApplication" 
-bundlepool C:\Users\me\MyApplication 
-profile DefaultProfile 
-profileProperties org.eclipse.update.install.features=true 
-p2.os win32 
-p2.ws win32 
-p2.arch x86_64 

-Declipse.p2.data.area=C:\Users\me\.p2 

설치가 잘 종류의 작동 :

는 이미 번들에는 다음과 같은 속성을 가진 P2 감독 응용 프로그램을 사용하여 사용자 디렉토리에 설치되어있는 시도/공유 설치를 제공 bundlepool 시도 응용 프로그램이 시작될 수 있습니다 (그녀에게 말한 후 실행 프로그램이 내 사용자 디렉토리에 있음). 그러나 불행히도 자급 자족은 여전히 ​​이런 식으로 일하지 않습니다. 관리자 권한으로 실행하면 -bundlepool 위치 대신 -destination 위치에 다운로드 된 업데이트 된 번들 및 기능이 표시됩니다. 이는 예상했던 것입니다.

내가 놓친 스위치는 무엇입니까?

답변

1

여기에도 비슷한 문제가 있습니다. 이유 중 하나는 설치중인 IUs가 p2.inf 터치 포인트 지침을 통해 여전히 "C : \ Program Files \ MyApplication"에 무언가를 쓰려고하는 것일 수 있습니다. 이 솔루션은 최소한의 실행 배포했다 "C : \ 프로그램 파일 \ MyApplicationLauncher을"어떤 :

  1. 수행 번들 풀 업데이트 (DIR = "C : \ 경우 ProgramData \ MyBundlePool")
  2. 를 실제로 설치하고 실행됩니다 응용 프로그램 % tmp % (dir = "C : \ Users \ username \ AppData \ Local \ Temp \ MyApplication")
+1

흥미로운 점. p2.inf에는 P2 저장소를 설정에 추가하는 지침이 포함되어 있으므로 프로그램 파일 디렉토리의 파일에 분명히 닿습니다. p2.data.area 속성에 지정된 디렉토리의 파일을 터치한다고해도 분명합니다. ApplicationLauncher는 무엇을합니까? 수동으로 업데이트를 확인 하시겠습니까? 그리고 응용 프로그램과 동일한 문제가 발생하지 않을 것입니다 (저장소에서 쓰기 권한이없는 폴더로 파일을 다운로드하려고 시도)? – CodeSeavers

+1

아니요, 실행 프로그램은 쓰기 가능한 디렉토리 (정상적으로는 % tmp % |)에서만 작동하는 방식으로 구성됩니다. % appdata % | % allusersprofile % | % userprofile % (Win7) –