1

我们曾经享受过 Windows XP 上的自我更新 Eclipse RCP 应用程序的乐趣(它是一个公司唯一的内部文档管理系统)。现在,在切换到 Windows7 后,只有当应用程序以管理员身份运行时才会执行更新,这当然会消除自更新应用程序的乐趣。

自我配置或多或少是从本文复制/粘贴

由于安装文件夹绑定到 C:\Program Files(公司策略...),因此应用程序可能不再写入此文件夹,除非作为提升的进程启动。p2 所做的(至少我认为在史诗般的调试会话之后)是从 p2 存储库下载 artifact.xml 和 content.xml 以在本地进行比较并构建更新计划。不幸的是,如果它无法存储下载的文件,它只会显示“无需更新”。

我已经尝试尝试使用共享安装/捆绑池,其中使用具有以下属性的 p2 导向器应用程序将捆绑包安装到用户目录:

-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

安装程序运行良好,应用程序可能会启动(在告诉她启动器在我的用户目录中之后)。但不幸的是,自我配置仍然不能以这种方式工作。以管理员身份运行将导致在 -destination 位置而不是 -bundlepool 位置下载更新的包和功能 - 这是我所期望的。

我错过了什么开关?

4

1 回答 1

1

我们在这里遇到了类似的问题。原因之一可能是正在安装的 IU 仍然尝试通过 p2.inf 接触点指令在“C:\Program Files\MyApplication”中写入内容。解决方案是部署一个简约的启动器“C:\Program Files\MyApplicationLauncher”,它:

  1. 执行捆绑池更新 (dir = "C:\ProgramData\MyBundlePool")
  2. 并实际在 %tmp% (dir = "C:\Users\username\AppData\Local\Temp\MyApplication") 中安装和启动应用程序
于 2012-07-27T07:58:06.860 回答