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.
  • Two insta... Konrad Zuwała via TortoiseSVN-dev
    • Re: ... Stefan via TortoiseSVN-dev
      • ... TortoiseSVN-dev
    • Re: ... TortoiseSVN-dev on behalf of Ivan Zhakov
      • ... tortoisesvn-dev+APn2wQd1mkOrV2yJHJ8Pt6PHurVkdg_F5JS4zFRfN0DSt5fR

Reply via email to