12
votes

I have two PCs both with XE2. I thought that I had installed identically on both but have problems installing 3rd party packages on one while the other is just fine.

I want the same on both anyway. The easist would probably just to "migrate" the working set-up by moving in into my Dropbox folder. Can I do that? If so, how?

If not, can I (easilly) backup my registry settings on one machine and then import them on the other?

I suppose I could just sort out the problem on the one PC, but am not having much luck so far. I would rather invest the time in only having one Delphi setup. And since I am moving lots of other stuff to DropBox anyway ...

4
I use a VM for exact this reason. Once my Delphi is installed in a VM, I can use it on different computers and I can try out many things with clones without any problems.Andreas
I agree, and I use VM for the same reason. Third party components are a nightmare to maintain. There should be some better way of solving this problem. Maybe enforce that all third-party vendors put different "parts" of libraries in specific places. Just like plugins work for many applications, or Linux directories (like /var/log...)Mihaela
+1 to both. yep, that's what I ought to have done, but it's too late now :-( Btw, how do you get the VM from one machine to the other?Mawg says reinstate Monica
Well let's do something about it. I have proposed some changes (and restrictions) for third-party libraries@ my blog:mihaelamj.com/delphi/delphi-vcl-components-portability-pccMihaela
+1 wah! I've never been blogged before; thanks. What can we do, though, to spread he word? How do we encourage developers? Can we get Embarcadero to show an interest? And what about legacy code?Mawg says reinstate Monica

4 Answers

11
votes

The tool for this is now built into Delphi XE8 and higher.

It's found here:
C:\Program Files (x86)\Embarcadero\Studio\20.0\bin\migrationtool.exe

Online documentation:

http://docwiki.embarcadero.com/RADStudio/Rio/en/Settings_Migration_Tool

10
votes

Install CnPack wizards from http://www.cnpack.org

From the CnPack toolbar select IDE Config Backup/Restore (image below) and save this file somewhere safe

IDE Config Backup/Restore

Copy the components to the second delphi machine . Keep the exact same directory structure.

I store my components as follows this helps backing up, moving etc., but you can use your own structure

D:\components_bds\DCU

D:\components_bds\BPL

D:\components_bds\ComponentsThemselves

Use the restore config file from CnPack to restore your components on the new machine

This is also useful if your testing components that you plan to remove later and keeping a backup of your installation incase something goes wrong you can save time with new delphi installation if hard drive dies. Keep a copy on flashdrive or somewhere safe

You may compare/diff the config file created by cnPack using a tool like Beyond Compare and see what the differences are to find out why third party components give problems on one of the machines. It may be a Delphi registry/installation problem or a problem in the paths of the thirdparty components. Components need to be installed in an order perhaps it did not find the needed dcu or dll it depends on.

2
votes

I don't know of any way to do so with DropBox. Here's an old post I made (related to Delphi 7, but with correction of registry keys still applicable) in the CodeGear newsgroups; hopefully it will help.

(It probably goes without saying, but back up the existing registry settings on the destination machine before starting by using RegEdit and exporting them, just in case. You'll at least be able to get back to the point you're at now if something goes wrong by deleting the imported entries and then importing the saved ones.)

You can't, without some difficulty anyway. (Especially if you have third party components installed, as they may have placed files in the %SYSTEM% folder you may not know about.)

You may be able to (for going from the old computer to the new computer running the same exact version of Windows!) by exporting the registry keys under HKCU\Software\Embarcadero and HKLM\Software\Embarcadero from the old machine, and then after installing Delphi on the new machine (in the exact same folder location) importing that registry file.

Many of the compiler, linker, and other settings are configured on a per-project basis, and should transfer over when you move your source code to the new machine.

Third-party components are a problem, as I mentioned above. You may be able to get away with using the registry export/import if you copy each third-party component set from the old computer into exactly the same location on the new machine before importing the registry file. You'll probably have to track down some .BPL files that end up in the $(BDS)\Bin and possibly other folders under the $(BDS) tree; the IDE will tell you about missing stuff when you try and start it. Make sure you answer "Yes " when asked if you want to try and load it again next time!

1
votes

Most of my development is hobby stuff or wannabe releases. Instead of dying trying to move my XE2 Pro from my Dell Inspiron N7110 Win 7 machine to my new Win 10 SSD machine, I'm seriously thinking of switching to Lazarus. I've used Lazarus 2.x with Indy 10, ZeosLib, and Firebird and successfully created a working distributed internet system. I also created Lazarus version of my XE2 Blackjack program. When compared to XE2, Lazarus (IMO) has only two weakness and neither are deal breakers for me. BTW, I have successfully duplicated Lazarus (with all installed components) from one machine to another simply by copying and pasting the Lazarus directory and it works. Try that with Delphi. Sam