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

  • From: Delphi Inspiration <delphi@xxxxxxxx>
  • To: yunqa@xxxxxxxxxxxxx
  • Date: Sun, 25 Dec 2011 23:25:38 +0100

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



Other related posts: