2013-02-11 6 views
0

P2 오류 "다음 중 하나 한 번에 설치할 수 있습니다"업데이트 기능 - 나는 내 프로젝트에서 다음과 같은 구조가 한

제품 "P"가 기능을 기반으로 Libray-Plugin "PL"에 의존하는 Plugin "PA"기반의 "FA". 전체 제품을 내보낼 수 있으며 모든 것이 잘 작동합니다.

이제 업데이트 사이트를 통해 다른 모듈을 설치하고 싶습니다. 예를 들면 Modul "M"은 사실 Library-Plugin "PL"에 의존하는 "PB"라는 플러그인을 기반으로하는 "FB"라는 기능입니다. 초기에 모듈 (기능)을 설치할 수 있습니다. 이 시점에서 Library-Plugin의 버전은 "1.0.0"입니다.

내가 모듈 (기능)을 변경하고 설치하려고 다음 1.0.1에 FB, PB 및 PL의 버전을 증가시키고 때, P2는 나에게 다음과 같은 오류 보여줍니다

Cannot complete the install because of a conflicting dependency. 
Software being installed: Modul Feature B - FB 1.0.1 
Software currently installed: Product P with Feature A - FA 1.0.0 
Only one of the following can be installed at once: 
    Library-Plugin - PL 1.0.0 
    Library-Plugin - PL 1.0.1 
Cannot satisfy dependency: 
From: Modul Feature B - FB 1.0.1 
To: Library-Plugin - PL 1.0.1 
Cannot satisfy dependency: 
From: Product P with Feature A - FA 1.0.0 
To: Library-Plugin - PL 1.0.0 

어떻게 생각을 잘못하고있는거야? 설치된 다른 기능이나 제품과 동일한 라이브러리 플러그인을 사용하는 기능 모듈 업그레이드를 배포하려면 어떻게해야합니까?

답변

0

기능 FA 및 FB에 플러그인의 종속성 (예 : 라이브러리 플러그인 PL)을 포함하는 것이 문제입니다. 이런 방식으로 각 기능은 PL의 버전을 정확한 버전으로 제한하므로 FA 또는 FB를 독립적으로 업데이트하려고하면 p2가 여러 버전의 PL을 설치해야합니다. 이것은 대부분의 번들에서는 불가능합니다 (대부분의 번들은 싱글 톤이기 때문에).

대신 기능에 고유 한 번들 PA와 PB가 있어야합니다. 이 방법으로 제품 P의 설치에는 여전히 PL이 포함됩니다 (p2로 만든 제품 설치에는 항상 모든 종속성이 포함되기 때문에). 그러나 PL 플러그인에 대해 "다음 중 하나만 설치할 수 있습니다"오류가 더 이상 발생하지 않습니다 . 이는 PA와 PB가 일반적으로 버전 범위가있는 PL (또는 버전 제한이 없을 수도 있음)에 일반적으로 종속되어 있기 때문에 업데이트 사이트에서 새 버전을 사용할 수있을 때마다 PL을 p2로 업데이트 할 수 있기 때문입니다.