How to reset the download when the GetIt package manager fails? - delphi

I tried to download the OmniThread lib via GetIt when Delphi crashed.
Other packages downloaded, compiled and installed just fine, so I guess it's a once off.
Now GetIt refuses to install OmniThread, because it sees the partial download, assumes all is well and starts compiling.
This breaks with a compile error and GetIt does not allow me to reset the state and clean up the download.
Where does GetIt store its downloads and how do I clean this out, so that GetIt will redownload the source from scratch?

Luis Navarro from Embacadero just explained to me:
Close the IDE, then delete the OmniThread folder from MyDocuments\Embarcadero\Studio\17.0\CatalogRepository
After that, you have to edit the registry and delete also the Omnithread folder from HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\17.0\CatalogRepository\Elements
This worked like a charm.
Note that for me there was no registry key in the above path for OmniThread yet. Perhaps the key only gets written upon successful installation of the package.
In that case you only need to delete the PackageName directory and reinstall.

Related

I get a Can't load package error although the BPL is there

This issue is driving me crazy. I'm trying to compile and install The QR Designer from QuickReports 6. I have an issue just with the one package. When I right the package in the IDE > Install the IDE gives me:
Can't load package C:\xe10_3\QRDesign\Win32\Debug\dclqrd_DXE10_3.bpl.
The specified module could not be found.
But the exact file is there.
I've also tried installing it via the menu under Components > Install Packages and then choosing the BPL from there, with the same issue.
I've tried to use Process Monitor as on this post here to find the issue:
Delphi Can't load package the specified module cannot be found
I couldn't fix the issue, but what I did pick up from Process Monitor was that some process was looking for the package here:
Computer\HKEY_CURRENT_USER\Software\Embarcadero\BDS\21.0\Package Cache\dclqrd_DXE10_3.bpl
That key didn't exists. I tried manually creating the key, but that didn't do a thing.
Any ideas?
UPDATE
Here is the list of packages:
As you can see, dclqrd_DXE10_3 is dependant on two others. Which I already built and installed. I removed its references and re-added them again now, to make sure the references are sound. I guess its like Remy said, the Specified module not found is probably not referring to dclqrd_DXE10_3 although I don't know what other module it could be referring to.
To install a package successfully in IDE, follow the steps:
Open the dpk/dproj/groupproj file in IDE
Build the package(s) for Windows 32-bit platform.
IDE itself is a 32-bit applicaton, so it should match.
Normally, it will build all dependent/required packages
Check if all chain of BPL & DCP files are generated in package Output directory.
It defaults to $(BDSCOMMONDIR)\Bpl & Dcp folders, but can be changed individually for each Package in Settings.
PBL packages are like DLL files. In order to load them, it requires all dependent BPLs.
If you have custom package output paths:
Check if your DCP output path is included in Tools\Options\Language\Delphi\Library Library Path for Windows 32-bit platform
Check if no duplicates of outdated compiled packages in default $(BDSCOMMONDIR)\Bpl & Dcp directories
Add the paths to library source pas files in Tools\Options\Language\Delphi\Library Browsing path or Library path
In some specific cases, if the package requires some extra dll-s like DB Client libraries, check if these dlls are 32-bit and are loadable, like included in %path% environement variable.
Note, some libraries offers package installer tools, that automagically do all mentioned things for you.
Also, there are universal package installer tools for quick working environement setup in one click.
I don't know why this fixed my issue, but it did.
The output directories for the bpl and dcp was set to be $(Platform)\$(Config)
The project files for the different packages exists in the same folder so the above config was supposed to be the debug folder or the release folder. Why only this package was thrown off I still don't know, but since changing the above packages to have a fixed path suddenly I could now install dclqrd_DXE10_3.bpl.
Thank you all for helping.

RAD Studio 10.2.3 Jedi JVCL Install Problem

I've uninstalled my RAD Studio 10.2.2 and installed 10.2.3 in my Win10 development VM. Along the way I uninstalled all the previous 3rd-party libs, including the Jedi GetIt packages, and per the instructions got rid of all the old Jedi source and DCP/DCLs. I'm attempting to install them back into 10.2.3 via GetIt. The JCL libs install fine, but when I try to install JVCL, the installation batch file hangs after compiling the installer and the VM comes to its knees. I rebooted, started taskmgr and watched as the batch file ran - it appears to go into a loop creating many instances of msgfmt. I've tried removing it all again, downloading and installing the 3.8 version myself and running the install batch file by itself, same problem; then backing up to the 3.6 version that had installed OK in 10.2.2, and it does the same thing. If I edit the batch file to skip the language-setup section, the batch file completes OK, but trying to re-run the GetIt update causes it to re-download and replace that batch file. :(
The installer does compile before the languages part of the batch file is reached, so I tried running the installer directly. I assume I'm not passing it cmd line info it needs, because it compiles the 64-bit libs fine but chokes immediately on compiling the 32-bit version of JvCore250.bpl with an unspecified compile error.
Anyone else run into this? Is a solution known?
Turns out to ultimately be a pathing problem. When multiple installations of the IDE exist on a machine (e.g. my VM has or previously had D2007, XE2 and 10.1 on it), the PATH environment variable can be too long - edit the PATH in the system to remove the old/stale paths. Then make sure that the library paths in the IDE includes $(BDSLIB)\$(PLATFORM)\release or you'll get "can't find RTL" when building the packages.
For me the problem is generated from the msgfmt.exe of dxgettext.
msgfmt.exe generates multilanguage messages, for a multilanguage support of jvcl installation.
For the specific problem of msgfmt.exe try to see this: dxgettext and Windows 10
I resolved the problem opened the install.bat file in jvcl folder, and I commented (with ::) every line where the msgfmt is executed.
Attention:
If you use getit I suppose you have to open the folder where jvcl is downloaded and search install.bat (I didn't use getit)
Instead I downloaded jvcl directly from github in my component folder, and I did what is written above in that folder.

Electron NSIS prevent reinstalling

Is there a way to have the NSIS built by Electron not re-install the app everytime it is clicked just like the MSI ? If the app is already installed I would like it to simply open it rather than re-installing.
I would use the MSI but when I open the app installed by it, it doesn't have read/write permissions from files inside the directory even if it is in Appdata (same folder as installation from NSIS). When installed from NSIS for some reason it gives read/write permissions to the app for files inside the installation directory.
Any help would be appreciated.
You need to edit your .nsi script file and do the check manually (skip the installation if an app is already installed) because there is no "switch" for that.
The issue with electron NSIS installers is that script is recreated every time (at least in the tutorials I saw) so you may lose any changes you made there.
In such case you cannot use the building pipeline, but you need to open the .nsi file with text editor, make the changes and compile everything with makensis.
Please post your script with more details.

Delphi XE2 can not load CnPack

I have a fresh win 10 installation with Delphi XE2.
I tried to install CnPack but there was no chance (It says couldn't find wizard):
Also registry is OK and the file is in there and the permissions are OK.
Its version is CnWizards_1.1.3.896 which is currently the latest version.
I have tried older versions as well but there was no chance.
Any idea ?
I had the same problem and I got it to resolve to do this.
I downloaded the Source file and the Installer file.
I used this version 1.1.3.896.
First I open the source in Delphi and Compile, Build and Install the following components.
CnPack_DXE2.dpk. (Compile and Build)
CnWizards_DXE2.dpr (Compile and Build)
dclCnPack_DXE2.dpk (Compile, Build and Install)
Execute the Installer file.
Now, this is the secret for me.
Replaced the files (CnWizards_DXE2.dll).
In the Third Step, it creates CnWizards_DXE2.dll (CnWizards\bin). Copy this file and paste in the local installation ([program files\CnPack\CnWizards]).
I created the mini tutorial in Portuguese for this situation, if necessary I can send it for you.
Sorry, my English is not good.
Bye for now

Unable to remove package from Delphi 2005

I needed to reinstall a package, DrRX.bpl. I removed it from the package list, and trying to install a newer version of the same package. I've replaced the old component's dir with the new one.
When I open the new DrRX.bpl and click install, I get the error
"Package C:\Program Files\Borland\BDS\3.0\components\rx work\output\DrRx.bpl cannot be installed because another package with the same basename is already loaded (DrRx.bpl)"
I cannot find any reference to DrRX in my package list, DrRX does not appear in the Tool Palette. How do I locate where Delphi thinks this is installed, and remove it, so I can reinstall the package?
You probably have an entry for this in your "Known Package" entry in your registry that is, for whatever reason, not working correctly.
Close RAD Studio.
Run REGEDIT.EXE and then go to
HKEY_CURRENT_USER\Software\Embarcadero\RADStudio\8.0\Known Packages
And see if there is an entry for DrRX.bpl. If there is, remove it, and try to install again.
What I have experienced myself many times is that after removing a package from the IDE, a reference remains in the Package Cache registry key under the Delphi registry key (e.g. HKEY_CURRENT_USER\CodeGear\BDS\7.0 for Delphi 2010). Though the package is no longer visible in the IDE, trying to install another package with the same name or a package containing a component with the same name causes errors until I delete the package that I uninstalled from the Package Cache registry key. It seems the cache is a bit too persistent.
Did you search the whole HD for others? Try that. If you find one, try to move/delete it. If you can't, then Delphi has got it.

Resources