[yunqa.de] Re: XE2 upgrade 3 install problem

  • From: "Jon Burnham" <jba@xxxxxxxxxxxxxx>
  • To: <yunqa@xxxxxxxxxxxxx>
  • Date: Mon, 26 Dec 2011 18:48:44 -0000

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



Other related posts: