implies that maybe it’s available in the Pro version of Parallels, but the Parallels website info is pretty sparse and I thought I’d check here first to see if anyone has relevant experience/advice.
I guess I could just build my Xojo app for Windows and run it under Parallels, but eww.
What I have historically done is use a macOS script to alter the InnoSetup file (*.iss) with the new version number and whatever I want to change. Then launch Parallels, open the VM, and run InnoSetup via the GUI, and all I have to do is click the Run icon.
But I do relatively few Windows releases, so it has never been a priority yet to automate more completely.
My problem now is passing the script file argument - InnoSetup launches but doesn’t like the path to the script file, which is on a mapped drive pointing to the Mac filesystem, i.e. sending
Returns the InnoSetup greeting messages followed by “The system cannot find the path specified.” The path does work when I use the Windows cmd terminal.
I also tried making a batch file stored on a Windows drive. It works when double-clicked in the File Explorer but when invoked from the Mac Terminal using prlctl it sits for a while as if it’s running and no errors are reported, but after the command returns no output has been generated by InnoSetup.
Is the “sit for awhile” delay approximately the same as running the batch file from the VM? Maybe it is producing output but not in the location you expect? Try using the File Explorer ribbon search tab and set the Date Modified to today and let it recursively check each drive for files modified today. I do very little in Windows anymore, so I can’t be more specific than that. This may help:
We used to use it for Innosetup installer building but moved on to Parallels once we started signing the app/installer. We have an internal Xojo app that builds the innosetup .iss files and uploads the results, etc so I hear what you’re wanting to do.
From what I’ve read, you can also do codesigning with Wine but we haven’t put the effort into solving it
It’s a journey rather than a destination, we seem to be tweaking and adding to it every 6 months or so. The automation is well worth the effort though. Many hours and many clicks saved!
Yeah, crossover can be a pain, but I find that parallels can be very picky at times when using prlctl.
As for parallels, I have had the best success making one-off calls. That is, if you need a bunch of calls in succession, make a windows .bat or powershell script to do that and use prlctl to execute it.
The other thing you could try is using a CI/ CD build system like Jenkins or GoCD and just set up your virtual machine as a builder. I use a Jenkins test VM in parallels pro at work for testing upgrades and new features by having it run headless in the background all the time. It consumes a tiny amount of CPU and memory when it’s not in use.
The “solution” to the original question is that the prlctl command included with the Pro and Business versions of Parallels can be used to send shell commands with arguments to a Windows VM.
My ugly workaround to InnoSetup’s non-acceptance of network (Mac) drive paths passed by this method is to temporarily copy all needed files to the Windows VM where InnoSetup accepts the paths passed via prlctl. This maintains backward compatibility with all my existing scripts, folder structures, and my old manual workflow.