Dear Ralf That's done the trick - you're a hero as always! Thank you. Enjoy what's remaining of Christmas and if I don't have reason to bother you before, have an excellent New Year ... Kind regards Jon -----Original Message----- From: yunqa-bounce@xxxxxxxxxxxxx [mailto:yunqa-bounce@xxxxxxxxxxxxx] On Behalf Of Delphi Inspiration Sent: 25 December 2011 22:26 To: yunqa@xxxxxxxxxxxxx Subject: [yunqa.de] Re: XE2 upgrade 3 install problem On 25.12.2011 18:33, Jon Burnham wrote: > Here is the message, not very informative: > > Unable to install package C:\Users\Public\Documents\RAD > Studio\9.0\Bpl\DISQLite3_DXE2.bpl. > > It does not matter about the sequence of installs > (Disqlite3/reg-ex/parser), it only allows one package and the rest fail with the message above. The following is based on the assumption that you are using DISQLite3, DIRegEx, and DIHtmlParser. 1. Make sure you are using the latest versions of all products. 2. De-install all of my products from your Delphi IDE and remove all extracted files as well as generated files (*.bpl, *.dcu) from your disk. This is a precaution to rule out that Delphi still finds and uses outdated files. 3. Extract all packages into the *same* root folder. Start with the oldest and continue up to the newest. This ensures that you will always have the latest version of those few files which are shared by multiple products. The release dates are on http://www.yunqa.de as well as in the History section in each product's help file. 4. Open the file DIHtmlParser_Dx.dpk (where the x corresponds to your Delphi version). This is the package for DIHtmlParser, and we will add the component registration units for DISQLite3 and DIRegEx to this package next. 5. Add these two files to the package, which should be in the same directory as DIHtmlParser_Dx.dpk if you followed step 3. exactly: * DISQLite3Reg.pas * DIRegEx_Reg.pas 6. Compile and install. Why is this required? Many of my products share some units (DIUtils.pas, for example), so that identical code is used only once and application size is reduced. Unfortunately, Delphi does not recognize units with equal names if they are in different folders. This is why step 3. is so important: It guarantees that identical unit files from different packages exist only once. Now if files are shared between packages, they cause dependencies between packages. There are 2 ways to resolve these: a) Packages must be "require"d by each other. b) Multiple products can use a single package if they contain the component registration units. This is what I suggest in step 5. There I use the DIIHtmlParser package for simplicity, but you can also create a new package if you like. Does this help? Ralf _______________________________________________ Delphi Inspiration mailing list yunqa@xxxxxxxxxxxxx //www.freelists.org/list/yunqa _______________________________________________ Delphi Inspiration mailing list yunqa@xxxxxxxxxxxxx //www.freelists.org/list/yunqa