P2 update of RCP based application fails

吃可爱长大的小学妹 提交于 2019-12-09 10:08:44

问题


I trying to update an Eclipse-RCP-3.5 based application by an P2 update-site. The Application contains two features.

Product is built by Eclipse Buckminster. Creation of the P2 update site is part of the product build.

When start the update by menu: Update -> Check for Updates a messages box is shown: There is nothing to update.

When i try menu: Update -> Install New Software... and select the same update-site an error is reported:

Your original request has been modified.
  "Verinice Anwendung" is already installed, so an update will be performed instead.
  "verinice server Feature" is already installed, so an update will be performed instead.
Cannot complete the install because of a conflicting dependency.
  Software being installed: Verinice Anwendung 1.1.1.201007130142 (sernet.gs.ui.rcp.main.feature.feature.group 1.1.1.201007130142)
  Software currently installed: verinice 1.1.1 (sernet.gs.ui.rcp.main.product 1.1.1)
  Only one of the following can be installed at once: 
    Verinice Anwendung 1.1.1.201007130142 (sernet.gs.ui.rcp.main.feature.feature.jar 1.1.1.201007130142)
    Verinice Anwendung 1.1.1.201007021358 (sernet.gs.ui.rcp.main.feature.feature.jar 1.1.1.201007021358)
  Cannot satisfy dependency:
    From: Verinice Anwendung 1.1.1.201007021358 (sernet.gs.ui.rcp.main.feature.feature.group 1.1.1.201007021358)
    To: sernet.gs.ui.rcp.main.feature.feature.jar [1.1.1.201007021358]
  Cannot satisfy dependency:
    From: Verinice Anwendung 1.1.1.201007130142 (sernet.gs.ui.rcp.main.feature.feature.group 1.1.1.201007130142)
    To: sernet.gs.ui.rcp.main.feature.feature.jar [1.1.1.201007130142]
  Cannot satisfy dependency:
    From: verinice 1.1.1 (sernet.gs.ui.rcp.main.product 1.1.1)
    To: sernet.gs.ui.rcp.main.feature.feature.group [1.1.1.201007021358]

回答1:


You need to build a new version of the product.

p2 distinguishes between what is "installed" and what is "required by the things that are installed". Your product sernet.gs.ui.rcp.main.product is the thing that is installed. Everything else is required by that. "Check for Updates" is looking for a new version of sernet.gs.ui.rcp.main.product.

By installing the feature, you are adding it to the list of things that are installed (instead of just required by the things installed). However, you still have the original product which has a requirement on a specific version of that feature. That requirement conflicts with the new version of the feature.

This came up a few times on the eclipse forums. You might be interested in this blog post I wrote in response.



来源:https://stackoverflow.com/questions/3238144/p2-update-of-rcp-based-application-fails

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!