Archive: Install Borland Package (*.bpl) files


Install Borland Package (*.bpl) files
Hi,

My application needs a few borland package files like, vcl60.bpl and rtl60.bpl. How should I install them? I can trow them in the windows\system32 folder using the File command. But I am not sure what to do when the applications is uninstalled. I can remove them but other programs may depend on the files. Has anyone a clue on how this should be done. - thanks Visser


Equal like Visual Basic 6 runtime package:


Section "Deploy"
SetOutPath $SYSDIR
File "C:\path\vcl60.bpl
File "C:\path\rtl60.bpl
SectionEnd

This is exactly what I am doing right now. However, at uninstall the .bpl files remain on the system while there is no program using them. How can they be removed if they are not used anymore?

Is the section name "deploy" a special name? I could not resolve it in the help or on google.

Is it possible to use a register dll macro (UpgradeDLL)?? But clearly the files are not dll files. Thanks Eelke.


Deploy is a dummy name for the section, like an example. You put the code in your main installation section.

lol :D

Did you use:


Section uninstall
Delete $SYSDIR\vcl60.bpl
Delete $SYSDIR\rtl60.bpl
SectionEnd

I have tried that and the files were removed. :) But ofcourse some other programs failed. :( So that is why I posted the question. Howto determine when it is safe to remove the files. I guess I will leave them on the system and will never remove them. Thanks for your help!


Some applications like BIGGYInstallShiled :p asks if you want to remove some files.

How about inform the user, that you are about to delete files, that your application won't need anymore, and is after he or she to remove it?

That's what I whould do.


Originally posted by Lobo Lunar
Deploy is a dummy name for the section, like an example. You put the code in your main installation section.

lol :D

Did you use:

Section uninstall
Delete $SYSDIR\vcl60.bpl
Delete $SYSDIR\rtl60.bpl
SectionEnd

Visser >> I Howto determine when it is safe to remove the files

It doesn't look like there's any sure-fire way to check that no other application needs such and such shared resource. In an ideal world, all applications should increment a counter when installed and/or run, but we don't live in an ideal world :-)

Some advice: Either provide a newbie/pro uninstall mode so that pro's can be prompted whether to uninstall such and such file while newbies won't be prompted at all (which is safer, since they don't have a clue what eg. MSVCRT.DLL is and whether it's OK to remove it), or just leave shared files in $SYSDIR silently. It's a good habit anyway to reinstall Windows every couple of years to remove crust :-)

My .15E
Fred.


I have found another way which has nothing to do with NSIS but solves the problem. I found the options to include the runtime libraries into the exe. Now I get a (much larger) single exe-file which does not depend on anything. However this kills the goal (save space) of shared libraries.

fredtheman wrote:"...all applications should increment a counter when installed and/or run,..."

Fred is this done by the UpgradeDLL macro? Does that also work for non-dll files????

Thanks people!!!