General XMetaL Discussion
dcramer February 22, 2010 at 9:48 pm
Customizing the XMetaL 6.0 installerFebruary 22, 2010 at 9:48 pmParticipants 7Replies 8Last Activity 12 years, 11 months ago
I was playing with the demo XMetaL 6.0 installer and noticed that there is no longer a “customizable” folder in the content that is extracted as the first step of the installation process. Has the installer customization method changed since 4.6?
DavidDerek Read February 22, 2010 at 11:57 pm
Reply to: Customizing the XMetaL 6.0 installerFebruary 22, 2010 at 11:57 pm
Yes, the customizable folder was deprecated quite some time ago. It became completely non-functional with the 5.5 release due to changes in Windows software installer requirements.
(as you know) It used to be possible to modify the content of the customizable folder and these files would then be copied over during installation as if we shipped them as part of our installer (kind of an ingenious feature). However, it is no longer possible to meet the current Windows installer requirements and continue to offer this feature, so it has been disabled.
If you need to make changes to an XMetaL Author installation the new process is to have our installer run to completion and then make your changes afterwords. There are a few ways to do this. Examples (from completely manual to completely automated):
1. Manually run our installer. Then manually copy the files you need to add or change over top using Windows Explorer or other. If DLLs need to be registered register them at the command line using C:WindowsSystem32regsvr32.exe
2. Place the files in a ZIP archive in an appropriate folder structure and then unzip this file on top of an installation of XMetaL Author, then register DLLs as above if required.
3. Create a batch file to automate all of the steps listed in #1 above.
4. Create an installer that first runs our installer (probably preferably silently) then copies files over top and registers DLLs, if required, either using the installer SDK's method for registering DLLs or by scripting it to run regsvr32.exe using the installer's method for scripting, whatever that may be.dcramer February 24, 2010 at 2:21 am
Reply to: Customizing the XMetaL 6.0 installerFebruary 24, 2010 at 2:21 am
Ok, so if I'm going to write my own installer to lay down assets and other customizations, I'll need to know what version(s) of XMetaL are installed, where they're installed, etc 🙂
By inspection, I've found the install location for 4.6 in 'HKLMSoftwareSoftQuadXMetaL 4.6Path'. Is there documentation for the the various registry keys storing the current version, the install location for a given version, and anything else that might be good to know?
DavidDerek Read February 24, 2010 at 9:33 pm
Reply to: Customizing the XMetaL 6.0 installerFebruary 24, 2010 at 9:33 pm
I'm not sure I understand the need quite yet.
If you are bundling our installer inside your installer (ours can be made to run silently either using InstallShield switches or you can use MSIEXEC to run the MSI package we include) the installation path would be fixed to a given location, which you would know based on having previously tested running the installer on a typical user's machine at your organization. So, when your installer starts writing files it would know where to put them based on this assumption.
Or are you thinking of something else?dcramer February 24, 2010 at 9:54 pm
Reply to: Customizing the XMetaL 6.0 installerFebruary 24, 2010 at 9:54 pm
In this case, I'm creating an installer using NSIS that will copy a bunch of files into the XMetaL install directory (under Assets, Rules, a random dll, etc). So it adds or updates the customizations to an existing installation. I want the installer to figure out where XMetaL is installed and put the new stuff in the right place. I've figured out that all the information I need is under HKLMSOFTWARESoftQuad. HKLMSOFTWARESoftQuadVersions seems to tell me what version is installed (i.e. 4.6.11). I take the first three characters of that and then find the information about that version: HKLMSOFTWARESoftQuadXMetaL #.#Path etc. I'd like to have one installer that works with 4.6 and will continue to work with 6.0.
I'm wondering now what to expect as far as the content of Versions if more than one version is installed. A semi-colon delimited list? Newest first?
One annoying thing (as much about NSIS as XMetaL) is that the path for 4.6 was stored as:
C:Program FilesBlast RadiusXMetaL 4.6Author
But for 6.0 it has a trailing backslash:
C:Program FilesXMetaL 6.0Author
I concatenate this path with “Assets” in my script. Unfortunately, the NSIS CopyFiles command seems not to understand C:Program FilesXMetaL 6.0Author\Assets as a target and the string manipulation features are quite limited.
My suggestion would be to document the XMetaL registry information in your customization doc…and be consistent between releases 🙂
DavidDerek Read February 24, 2010 at 11:04 pm
Reply to: Customizing the XMetaL 6.0 installerFebruary 24, 2010 at 11:04 pm
Consistency would be nice, I agree, which is one reason for not modifying the SoftQuad registry key despite the fact that we are now three companies beyond that. Part of the inconsistencies that you are seeing between versions is very possibly to do with the fact that we have used different versions of InstallShield over the years to create our installers (as we have been forced to upgrade that software) and it is constantly changing as well.
What you have figured out is the only way I can think of to get the information you are looking for.
There should be no way to have more than one version installed unless perhaps you have 1.x, 2.x or 3.x. Our 4.x and up installers are supposed to detect other versions of the software and ask you to remove them before they will install. If you do manage to have more than one version of XMetaL Author installed at once (including 3.x and earlier) that [u]will[/u] cause problems and should be avoided.dcramer February 24, 2010 at 11:47 pm
Reply to: Customizing the XMetaL 6.0 installerFebruary 24, 2010 at 11:47 pm
> which is one reason for not modifying the SoftQuad registry key
Good point. Thanks for that!
I didn't realize you could only have one version at a time. That's good to know. So would I have to uninstall XMetaL Developer 4.6 to install XMetaL Author 6.0 (assuming 6.0 dev isn't already out when we upgrade)? Or maybe it is already out and I hadn't heard?
I'd say all this would still be good to document in the customization guide, especially for those new to XMetaL who might not realize why “SoftQuad” is a logical place XMetaL's info in the registry 🙂
DavidDerek Read February 25, 2010 at 10:34 pm
Reply to: Customizing the XMetaL 6.0 installerFebruary 25, 2010 at 10:34 pm
The XMetaL Author Enterprise 6.0 installer will detect that you have XMetaL Developer 4.6 installed and will not let you install on the same machine. My recommendation is to keep your XMetaL Developer 4.6 installation as it is, debug with the existing XMetaL Author 4.6 installation then if you will be deploying any customizations to an XMetaL Author Enterprise 6.0 installation test those on a second machine with that product.
XMetaL Developer 6.0 is due out soon, though the exact date is still unknown I believe the target date is still this quarter. Our other products, including the 6.0 versions of XMetaL Author Essential and XMAX, are due to be released at about the same time.dcramer March 1, 2010 at 10:16 pm
Reply to: Customizing the XMetaL 6.0 installerMarch 1, 2010 at 10:16 pm
In reply to previous post, it looks like all the information I asked for is already in the readmes (I'd only looked in the customization guide, where the old install stuff lived). So I should have just RTFRM!
Sorry for the noise,
- You must be logged in to reply to this topic.