Johan Appelgren a écrit :
> On Tue, Jul 1, 2008 at 10:07 AM, Frédéric Viollet
> <[EMAIL PROTECTED]> wrote:
>
>> Hi everyone,
>>
>> I've got a real big problem here on applying minor upgrades to my
>> product. I really need your help here :)
>> During the first install, I ask the user where the product should be
>> installed (by using the wix standard Gui)
>> But on minor upgrades, I do not ask him again. I just re-install the
>> files to the previously selected location (well, that's what I'd like to do)
>> I seem to have some problems with the property that points to my
>> installation directory.
>> Here's an extraction of the code I'm using:
>>
>> <Directory Id="TARGETDIR" Name="SourceDir">
>> <Directory Id='ProgramFilesFolder' Name='PFiles'>
>> <Directory Id="MyCompany" Name="MyCompany">
>> <Directory Id="MyProduct" Name="MyProduct">
>> <Directory Id="SUITEINSTALLDIR" Name="MySuite">
>> <Component Id="MY_REGISTRY_ACTIONS" Guid="a guid">
>> <RegistryKey Root="HKLM"
>> Key="Software\MyCompany\MyProduct\MySuite\MyModule">
>> <RegistryValue KeyPath="yes" Name="InstallDir"
>> Value="[SUITEINSTALLDIR]MyModule" Type="string" Action="write" />
>> </RegistryKey>
>> ..... Install a bunch of files ....
>> </Component>
>> </Directory>
>> </Directory>
>> </Directory>
>> </Directory>
>> </Directory>
>> <Property Id="WIXUI_INSTALLDIR" Value="SUITEINSTALLDIR" />
>> <UIRef Id="MyProduct_UI" />
>> <UIRef Id="WixUI_ErrorProgressText" />
>>
>> Now, let's say that the default ProgramFilesFolder is C:\Program Files\
>> On the first installation, the installdir is ask for. I enter F:\Program
>> Files\MyCompany\MyProduct\MySuite *(and not C:)*. Everything works well :
>> -the files are installed in F:\Program Files\MyCompany\MyProduct\MySuite
>> -the registry value "InstallDir" is set to F:\Program
>> Files\MyCompany\MyProduct\MySuite\MyModule
>>
>> On a minor upgrade, no installation dir is ask for (this is ok), and the
>> new files are correctly copied to F:\Program
>> Files\MyCompany\MyProduct\MySuite, but :
>> -the registry value "InstallDir" is set to *C::\Program
>> Files\MyCompany\MyProduct\MySuite\MyModule*
>>
>> Any idea of how I could fix this?
>>
>> Thanks a lot for your patience for reading all way down here :)
>>
>> Fred
>>
>
> I think you must set the SUITEINSTALLDIR property using a RegistrySearch.
> http://wix.sourceforge.net/manual-wix2/wix_xsd_registrysearch.htm
>
Ok. I will try this.
The code should look like this then I guess:
|<Property Id="SUITEINSTALLDIR">
<RegistrySearch Id="SUITEINSTALLDIR" Type="directory" Root"HKLM"
Key="|Software\MyCompany\MyProduct\MySuite\MyModule|" Name="InstallDir" />
</Property>
<Directory Id="TARGETDIR" Name="SourceDir">
snip ....
<Directory Id="SUITEINSTALLDIR" Name="MySuite">
</Directory>
snip ....
</Directory>
<Property Id="WIXUI_INSTALLDIR" Value="SUITEINSTALLDIR" />
<UIRef Id="MyProduct_UI" />
<UIRef Id="WixUI_ErrorProgressText" />|
But, will this work on first install (the registry key will not be
found)? Will the SUITEINSTALLDIR Property have a default value?
> Why is the InstallDir registry value the KeyPath for all your files?
> Normally you have one component per .exe, .dll, .ocx and so on with
> the file as KeyPath.
>
My fault. The extracted code was incomplete. There was a missing
</Component> after the Registry entries :)
Thanks again for your help.
Fred
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users