Communicating With Multiple Xojo IDEs Independently
The Xojo IDE listens on an IPCSocket with a path of /tmp/XojoIDE. In order to communicate with more than one running at a time, you need to use a unique path for each running IDE. This can be accomplished by setting the environment variable XOJO_IPCPATH to a filename. The only valid characters for the filename are a-z, A-Z, 0-9 and _.
env XOJO_IPCPATH=Xojo2019r2 /Applications/Xojo 2019 Release 2/Xojo.app/Contents/MacOS/Xojo &
I’m trying to run Xojo 2019r3.1 and 2021r3.1 on the same computer and connect to them with the IDECommunicator. The first xojo version to open listens on “C:\Users\Username\AppData\Local\Temp\XojoIDE” and the second on “C:\Users\Username\AppData\Local\Temp\XojoIDE1”. If I connect to the first one then disconnect sometimes the Xojo Versions switch places. Eg. First is now connected to “XojoIDE1” and the second to “XojoIDE”. The keep swapping. The only way it seems is to set the XOJO_IPCPATH Environment Variable.
If I add that environment variable in windows, Xojo’s IPC socket can no longer be seen and throws an error when connecting.
Eg./ XOJO_IPCPATH=Xojo2019r3.1 C:\XojoIPCPaths\2019
Also, I can’t connect to the default path either “C:\Users\Username\AppData\Local\Temp\XojoIDE”.
At this point I’m not sure of the path Xojo is listening on.
What is the correct format for XOJO_IPCPATH for multiple versions?
XOJO_IPCPATH=Xojo2019r3.1 C:\XojoIPCPaths\2019;Xojo2021r3.1 C:\XojoIPCPaths\2021
What is the delimiter to list multiple versions?
XOJO_IPCPATH=Xojo2019r3.1 C:\XojoIPCPaths\2019 - I thought that if I only mentioned one then 2019 would be on that path and 2021 on the default path but can’t connect to either
I usually start the development of my app with one version of Xojo and don’t switch to newer versions immediately. As result I now and then work with different versions of Xojo at the same time.
I always had to quit one version of Xojo and then start the second version of Xojo. And even that didn’t work always.
I made a feature request in Feedback to use 2 versions of Xojo in IDE Communicator. But Xojo implemented something totally different.
I need to use both versions as most apps are in 2019r3.1 and some of the new ones are 2021r3.1
I can’t update them all to 2021 yet
I’ve made a program to compile the apps made in xojo and deploy them. Manually closing and re-opening isn’t an option
Xojo have implemented this feature in XOJO_IPCPATH but haven’t given details of the syntax. The IPCPath should be set inside the IDEs settings and then it would be fine.
Just looking for details on how to get XOJO_IPCPATH to work on windows
At the moment I’m just manually setting XOJO_IPCPATH in ControlPanel → System → Environment Variables and then opening 1 version of Xojo. The manually set path can’t be connected to using the IDECommunicator or the original default path in Temp. Has it got something to do with the xojo version, should it include the point for 3.1 eg/
XOJO_IPCPATH=Xojo2019r3.1 C:\XojoIPCPaths\2019
XOJO_IPCPATH=Xojo2019r31 C:\XojoIPCPaths\2019
So, you’re saying that you cant set both IPC Paths in an environment variable and let both versions of Xojo autostart?
What about if Xojo crashes?
So first of all, you need to stop trying to use the global environment variables. Instead, make yourself a .bat file that sets the var and then launches the IDE as I mentioned above. It should look something like this:
set XOJO_IPCPATH=Xojo2021r31
"C:\Program Files\Xojo\Xojo 2021r3.1\Xojo.exe"
Note that the path isn’t really a path, but it will be changed into one when the IDE sees the value exists. With two .bat files with different “paths” you can open the two IDEs and have them communicate separately.
Next, in your app that’s going to talk to the IDE, you need to use the “correct” temp directory. On Windows, that’s the equivalent of:
I ran into another issue while getting this to work.
The SpecialFolder.Temporary returns “C:\Users\Username\AppData\Local\Temp”
In my case windows was using temporary folders per session so my actual temp folder was located in “C:\Users\Username\AppData\Local\Temp\1”. Xojo was returning the system temp folder and not my current user temp folder. A way around this is to enable the following group policy or use cmd to echo back the actual temp folder
Windows Components\Remote Desktop Services\Remote Desktop Session Host\Temporary folders