New upgrade question

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

New upgrade question

Etienne Grignon

Hello,

I just wanted to know how you handle these 2 needs during an upgrade :

- A component has files with new filename, When I try it, the new file is installed but the old one is not uninstalled. How should I do to upgrade the component with the installation of the new file and the suppression of the old one ?

- Install a new component automatically by the command : "msiexec  /i package.msi REINSTALL=ALL REINSTALLMODE=vomus", The upgrade is well done and the new version is available but, component with new Guid is not installed. How should I do to force the new component to be installed during the upgrade ?

The wix tutorial doesn't handle these smalls things so I hope you understood my 2 questions.

Thank you in advance for your advises,

--
Etienne GRIGNON
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: New upgrade question

Rob Hamflett

> - A component has files with new filename, When I try it, the new file
> is installed but the old one is not uninstalled. How should I do to
> upgrade the component with the installation of the new file and the
> suppression of the old one ?

You can't change the filenames in a component.  Create a new one.  If
this is for a minor update change the original component to include a
RemoveFile entry.

>
> - Install a new component automatically by the command : "msiexec  /i
> package.msi REINSTALL=ALL REINSTALLMODE=vomus", The upgrade is well
> done and the new version is available but, component with new Guid is
> not installed. How should I do to force the new component to be
> installed during the upgrade ?

Not sure what's wrong here.  Are you breaking the component rules again?

Rob

--
The views expressed in this message do not necessarily constitute the views of SN Systems Ltd and information in this message is confidential and may be privileged.  It is intended solely for the person to whom it is addressed.  If you are not the intended recipient, please notify the sender and please delete the message from your system immediately.



-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: New upgrade question

Etienne Grignon
Hello,

thank you for your answer. This is what I did. It works better, it deletes the file on upgrades. However, the registry is not prepends as it should. Also, the new product is not installed.

This is the  component declaration :

<!-- Old Vbs Component -->
<Component Id='diskC' Guid='2888887D-5A7A-4a82-B1D4-282578842C2A'>
    <RemoveFile Id='PerfDisks.vbs' Name="PerfDisk.vbs" LongName='PerfDisks.vbs' On="both"/>
    <Registry Id='ProbesPerfDisksReg' Root='HKLM' Key='SOFTWARE\Monitoring\Test\Probes' Name='ToDefault' Action='prepend' Type='multiString' Value="[probesD]PerfDisks.vbs /INT=300; "/>
    </Component>

<Component Id='diskBinaryC' Guid='D87ED5F0-5199-4220-A323-EC2724A69D9A'>
    <File Id='PerfDisks.exe' Name="PerfDisk.exe" LongName='PerfDisks.exe' DiskId='1' src='probes/PerfDisks.exe' Vital='yes'/>
    <Registry Id='ProbesPerfDisksBinaryReg' Root='HKLM' Key='SOFTWARE\Monitoring\Test\Probes' Name='ToDefault' Action='append' Type='multiString' Value="[extD]PerfDisks.exe /INT=300; "/>
</Component>

The feature part :

<Feature Id='diskP' Title='Disks' Description='Will monitor the disk available space on disk with different units than the embed feature in client.'  TypicalDefault='install' Level='1'>
                    <ComponentRef Id='diskC' /> <!-- the one to delete -->
                    <ComponentRef Id='diskBinaryC' /> <!-- the new one to install -->
</Feature>


May be there is something very wrong in the wix declaration that I'v done.

Thank you in advance,




2005/9/20, Rob Hamflett <[hidden email]>:

> - A component has files with new filename, When I try it, the new file
> is installed but the old one is not uninstalled. How should I do to
> upgrade the component with the installation of the new file and the
> suppression of the old one ?

You can't change the filenames in a component.  Create a new one.  If
this is for a minor update change the original component to include a
RemoveFile entry.

>
> - Install a new component automatically by the command : "msiexec  /i
> package.msi REINSTALL=ALL REINSTALLMODE=vomus", The upgrade is well
> done and the new version is available but, component with new Guid is
> not installed. How should I do to force the new component to be
> installed during the upgrade ?

Not sure what's wrong here.  Are you breaking the component rules again?

Rob

--
The views expressed in this message do not necessarily constitute the views of SN Systems Ltd and information in this message is confidential and may be privileged.  It is intended solely for the person to whom it is addressed.  If you are not the intended recipient, please notify the sender and please delete the message from your system immediately.



-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users



--
Etienne GRIGNON
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: New upgrade question

Rob Hamflett
Since your using altering the same value in both Registry tags I can
only guess that both are making a copy of the existing value, making the
change and writing them back.  ProbesPerfDisksBinaryReg is being done
second and overwriting ProbesPerfDisksReg.  Not sure though, maybe
someone else knows better.  A log file might help show what's going on,
as well as point out why the product is not getting installed.  What do
you mean by that exactly?  Is the PerfDisks.exe file not installed or
does the product not appear in Add/Remove Programs or what?

Rob

Etienne Grignon wrote:

> Hello,
>
> thank you for your answer. This is what I did. It works better, it
> deletes the file on upgrades. However, the registry is not prepends as
> it should. Also, the new product is not installed.
>
> This is the  component declaration :
>
> <!-- Old Vbs Component -->
> <Component Id='diskC' Guid='2888887D-5A7A-4a82-B1D4-282578842C2A'>
>     <RemoveFile Id='PerfDisks.vbs' Name="PerfDisk.vbs"
> LongName='PerfDisks.vbs' On="both"/>
>     <Registry Id='ProbesPerfDisksReg' Root='HKLM'
> Key='SOFTWARE\Monitoring\Test\Probes' Name='ToDefault' Action='prepend'
> Type='multiString' Value="[probesD]PerfDisks.vbs /INT=300; "/>
>     </Component>
>
> <Component Id='diskBinaryC' Guid='D87ED5F0-5199-4220-A323-EC2724A69D9A'>
>     <File Id='PerfDisks.exe' Name="PerfDisk.exe"
> LongName='PerfDisks.exe' DiskId='1' src='probes/PerfDisks.exe' Vital='yes'/>
>     <Registry Id='ProbesPerfDisksBinaryReg' Root='HKLM'
> Key='SOFTWARE\Monitoring\Test\Probes' Name='ToDefault' Action='append'
> Type='multiString' Value="[extD]PerfDisks.exe /INT=300; "/>
> </Component>
>
> The feature part :
>
> <Feature Id='diskP' Title='Disks' Description='Will monitor the disk
> available space on disk with different units than the embed feature in
> client.'  TypicalDefault='install' Level='1'>
>                     <ComponentRef Id='diskC' /> <!-- the one to delete -->
>                     <ComponentRef Id='diskBinaryC' /> <!-- the new one
> to install -->
> </Feature>
>
>
> May be there is something very wrong in the wix declaration that I'v done.
>
> Thank you in advance,
>
>
>
>
> 2005/9/20, Rob Hamflett <[hidden email] <mailto:[hidden email]>>:
>
>
>      > - A component has files with new filename, When I try it, the new
>     file
>      > is installed but the old one is not uninstalled. How should I do to
>      > upgrade the component with the installation of the new file and the
>      > suppression of the old one ?
>
>     You can't change the filenames in a component.  Create a new one.  If
>     this is for a minor update change the original component to include a
>     RemoveFile entry.
>
>      >
>      > - Install a new component automatically by the command : "msiexec  /i
>      > package.msi REINSTALL=ALL REINSTALLMODE=vomus", The upgrade is well
>      > done and the new version is available but, component with new
>     Guid is
>      > not installed. How should I do to force the new component to be
>      > installed during the upgrade ?
>
>     Not sure what's wrong here.  Are you breaking the component rules again?
>
>     Rob
>
>     --
>     The views expressed in this message do not necessarily constitute
>     the views of SN Systems Ltd and information in this message is
>     confidential and may be privileged.  It is intended solely for the
>     person to whom it is addressed.  If you are not the intended
>     recipient, please notify the sender and please delete the message
>     from your system immediately.
>
>
>
>     -------------------------------------------------------
>     SF.Net email is sponsored by:
>     Tame your development challenges with Apache's Geronimo App Server.
>     Download
>     it for free - -and be entered to win a 42" plasma tv or your very own
>     Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
>     _______________________________________________
>     WiX-users mailing list
>     [hidden email] <mailto:[hidden email]>
>     https://lists.sourceforge.net/lists/listinfo/wix-users
>
>
>
>
> --
> Etienne GRIGNON



-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Re: New upgrade question

Etienne Grignon
Rob,

It looks better now. The new component is installed when I upgrade the product. The only problem now is that the prepend action to remove a value from the multi string registry type doesn't seem to work.

At the end, I got both registry value lines : one with .vbs and one with .exe
The ugly thing which I could do is to create a registry called ToRemove and create a customaction to remove lines from the original registry thanks to that temporary registry. What do you think of my idea ? How would you handle that ?

Thank you in advance,


--
Etienne GRIGNON
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: New upgrade question

Rob Hamflett
Oh, you want to remove the value that was prepended on the last install.
    That's slightly trickier.  I'm not sure you can get round that
without letting MSI do it for you during uninstall.  If you have to do
this as a minor upgrade and you have to remove that value, I think a
Custom Action is your only choice.  Alternatively you could do it as a
major upgrade, which is what I do each time (you don't need to change
the major version number to do a major upgrade).  Just be sure to author
the Upgrade table properly to remove the previous version.

Rob


Etienne Grignon wrote:

> Rob,
>
> It looks better now. The new component is installed when I upgrade the
> product. The only problem now is that the prepend action to remove a
> value from the multi string registry type doesn't seem to work.
>
> At the end, I got both registry value lines : one with .vbs and one with
> .exe
> The ugly thing which I could do is to create a registry called ToRemove
> and create a customaction to remove lines from the original registry
> thanks to that temporary registry. What do you think of my idea ? How
> would you handle that ?
>
> Thank you in advance,
>
>
> --
> Etienne GRIGNON



-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Re: New upgrade question

Rob Hamflett
When you remove a registry value you can only remove the whole thing,
not just a part of it.  As for the Major upgrade issue, just sequence
RemoveExistingProducts as the last thing in your InstallSequence.  This
is the most efficient way to use it, anyway.

Rob

Etienne Grignon wrote:

> Well, it's strange that it is not possible to use the "remove" action
> for multiString registry, because when I try to use it. It tells me that :
>
> error CNDL0040 : The Registry/@Value attribute cannot be specified
> when attribute Action is present with value 'remove'.
> error CNDL0040 : The Registry/@Type attribute cannot be specified when
> attribute Action is present with value 'remove'.
>
> The problem with Major upgrade is that I will loose my registry
> settings when it will desinstall it before upgrading. This is why I
> use minor upgrade.
>
>
>
> 2005/9/20, Rob Hamflett <[hidden email] <mailto:[hidden email]>>:
>
>     Oh, you want to remove the value that was prepended on the last
>     install.
>         That's slightly trickier.  I'm not sure you can get round that
>     without letting MSI do it for you during uninstall.  If you have to do
>     this as a minor upgrade and you have to remove that value, I think a
>     Custom Action is your only choice.  Alternatively you could do it as a
>     major upgrade, which is what I do each time (you don't need to change
>     the major version number to do a major upgrade).  Just be sure to
>     author
>     the Upgrade table properly to remove the previous version.
>
>     Rob
>
>
>     Etienne Grignon wrote:
>     > Rob,
>     >
>     > It looks better now. The new component is installed when I
>     upgrade the
>     > product. The only problem now is that the prepend action to
>     remove a
>     > value from the multi string registry type doesn't seem to work.
>     >
>     > At the end, I got both registry value lines : one with .vbs and
>     one with
>     > .exe
>     > The ugly thing which I could do is to create a registry called
>     ToRemove
>     > and create a customaction to remove lines from the original registry
>     > thanks to that temporary registry. What do you think of my idea
>     ? How
>     > would you handle that ?
>     >
>     > Thank you in advance,
>     >
>     >
>     > --
>     > Etienne GRIGNON
>
>
>
>     -------------------------------------------------------
>     SF.Net email is sponsored by:
>     Tame your development challenges with Apache's Geronimo App
>     Server. Download
>     it for free - -and be entered to win a 42" plasma tv or your very own
>     Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
>     _______________________________________________
>     WiX-users mailing list
>     [hidden email]
>     <mailto:[hidden email]>
>     https://lists.sourceforge.net/lists/listinfo/wix-users
>     <https://lists.sourceforge.net/lists/listinfo/wix-users>
>
>
>
>
> --
> Etienne GRIGNON


--
The views expressed in this message do not necessarily constitute the views of SN Systems Ltd and information in this message is confidential and may be privileged.  It is intended solely for the person to whom it is addressed.  If you are not the intended recipient, please notify the sender and please delete the message from your system immediately.



-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users
Loading...