Hey guys! I need some help with custom installers.
As agreed we will have two 'versions' of tortoise. One official, from trunk, and one built from shelve branch. I am doing a custom installer for a shelve branch. The purpouse of such solution is quite simple: we don't want user to have two products installed at same time (due to Explorer hooks for example), we also don't want any of versions to do an upgrade of the different one, eg. shelve should not upgrade official and vice versa. I solved the issue by taking few actions: 1. I changed Upgrade GUID for a shelve version, to make sure it doesn't do an upgrade of 'standard' TSVN, 2. I created a registry Value under TortoiseSVN key, CustomVersion, DWORD, 1, which indicates that it's not a standard installer. Now, if I run installer, I added a condition: <Property Id="PLAINTSVNFOUND"> <RegistrySearch Id="PlainTortoise" Root="HKLM" Key="Software\[Manufacturer]" Name="Directory" Type="raw"/> </Property> <Property Id="CUSTOMVERSIONFOUND"> <RegistrySearch Id="CustomTortoise" Root="HKLM" Key="Software\[Manufacturer]" Name="CustomVersion" Type="raw"/> </Property> <Condition Message="Please uninstall plain TortoiseSVN before installing [ProductName]."><![CDATA[Installed OR NOT PLAINTSVNFOUND OR (PLAINTSVNFOUND AND CUSTOMVERSIONFOUND)]]></Condition> So, basically, I look for TortoiseSVN installation, during new app installation phase. If found, I check if we also have CustomVersion key. If not, it means it's an official installation and we must abort now. 3. ProductName is different. Now, I have a few questions about that solution: 1. Is it OKish solution or it's totally stupid what I did? :D That's like the most important question :) 2. I changed upgrade GUID for the new app, by randomizing a bit Tortoise SVN upgrade GUIDs. Is it fine or GUIDs are generated totally different way? 3. In order to make solution complete, we need to have official TortoiseSVN installer be able to detect Shelve version (so it doesn't install next to Shelve version of TortoiseSVN). So I bet we need to make changes in official 'trunk' installer too? 4. Maybe you have any suggestions regarding how it's better to do it? Like for instance I tried to experiment with detection of official TSVN upgrade GUIDs and, based on that, doing installation or aborting it. But it seemed for me that registry key/value is the best solution I can come up with. Any feedback will be appreciated! Thanks! Yours, Konrad Zuwała -- You received this message because you are subscribed to the Google Groups "TortoiseSVN-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/tortoisesvn-dev/fbc729f6-7d08-4f29-9f74-ad230ed9e42a%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

