|
Currently I can do a major upgrade of a specific instance. There are a
couple problems though. 1. The default instance is upgraded fine. The transforms are upgraded, BUT the previous version is not removed. So they both show up in ARP. 2. I need to be able to not downgrade a specific instance, but be able to install an old version as a different instance. I am currently giving each instance it's own upgrade code and then scheduling the FindRelatedProducts action after the upgrade codes are set. Here is the current code: <Product Id="YOURGUID-7AF1-4854-9B4F-01A6C77CC4AB" Name="InstanceTransforms" Language="1033" Version="8.1.0.0" Manufacturer="DCT" UpgradeCode="{YOURGUID-F8CA-4F91-B74D-DF92AE4AB8FF}"> ... <MajorUpgrade AllowDowngrades="no" DowngradeErrorMessage="A new version of [ProductName] is already installed. Exiting installation." Schedule="afterInstallFinalize" /> <Property Id="INSTANCEID" Value="Default Instance" Secure="yes" /> <InstanceTransforms Property="INSTANCEID"> <Instance Id="Instance_1" ProductCode="YOURGUID-975B-4CBA-B2CC-B363CAA4312C" ProductName="InstanceTransforms"/> <Instance Id="Instance_2" ProductCode="YOURGUID-CB52-485A-BE2A-1B2A407CD878" ProductName="InstanceTransforms"/> </InstanceTransforms> <CustomAction Id="SetUpgradeCode_1" Property="UpgradeCode" Value="{YOURGUID-975B-4CBA-B2CC-B363CAA4312C}" /> <CustomAction Id="SetUpgradeCode_2" Property="UpgradeCode" Value="{YOURGUID-CB52-485A-BE2A-1B2A407CD878}" /> ... <InstallUISequence> <Custom Action="SetUpgradeCode_1" Before="AppSearch" >INSTANCEID = "Instance_1"</Custom> <Custom Action="SetUpgradeCode_2" Before="AppSearch" >INSTANCEID = "Instance_2"</Custom> <FindRelatedProducts After ="SetUpgradeCode_2"/> <!--Do FindRelatedProducts after the last upgradecode CA runs.--> </InstallUISequence> <InstallExecuteSequence> <Custom Action="SetUpgradeCode_1" Before="AppSearch" >INSTANCEID = "Instance_1"</Custom> <Custom Action="SetUpgradeCode_2" Before="AppSearch" >INSTANCEID = "Instance_2"</Custom> <FindRelatedProducts After="SetUpgradeCode_2"/> </InstallExecuteSequence> ... </Product> -- Tyler Walters - Duck Creek Technologies ------------------------------------------------------------------------------ Benefiting from Server Virtualization: Beyond Initial Workload Consolidation -- Increasing the use of server virtualization is a top priority.Virtualization can reduce costs, simplify management, and improve application availability and disaster protection. Learn more about boosting the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users |
|
Tyler,
Problem 1 - In order for a major upgrade to work, you have to call RemoveExistingProducts to remove older versions. Given your post, I don't see that in your execute sequence. Problem 2 - I can't offer any advice for that, sorry. Chris On 04/14/2011 12:35 PM, Tyler Walters wrote: > Currently I can do a major upgrade of a specific instance. There are a > couple problems though. > 1. The default instance is upgraded fine. The transforms are upgraded, > BUT the previous version is not removed. So they both show up in ARP. > 2. I need to be able to not downgrade a specific instance, but be able > to install an old version as a different instance. > > I am currently giving each instance it's own upgrade code and then > scheduling the FindRelatedProducts action after the upgrade codes are set. > > > Here is the current code: > > <Product Id="YOURGUID-7AF1-4854-9B4F-01A6C77CC4AB" > Name="InstanceTransforms" > Language="1033" > Version="8.1.0.0" > Manufacturer="DCT" > UpgradeCode="{YOURGUID-F8CA-4F91-B74D-DF92AE4AB8FF}"> > > ... > > <MajorUpgrade AllowDowngrades="no" DowngradeErrorMessage="A new > version of [ProductName] is already installed. Exiting installation." > Schedule="afterInstallFinalize" /> > > <Property Id="INSTANCEID" Value="Default Instance" Secure="yes" /> > <InstanceTransforms Property="INSTANCEID"> > <Instance Id="Instance_1" > ProductCode="YOURGUID-975B-4CBA-B2CC-B363CAA4312C" > ProductName="InstanceTransforms"/> > <Instance Id="Instance_2" > ProductCode="YOURGUID-CB52-485A-BE2A-1B2A407CD878" > ProductName="InstanceTransforms"/> > </InstanceTransforms> > > <CustomAction Id="SetUpgradeCode_1" Property="UpgradeCode" > Value="{YOURGUID-975B-4CBA-B2CC-B363CAA4312C}" /> > <CustomAction Id="SetUpgradeCode_2" Property="UpgradeCode" > Value="{YOURGUID-CB52-485A-BE2A-1B2A407CD878}" /> > > ... > > <InstallUISequence> > <Custom Action="SetUpgradeCode_1" Before="AppSearch">INSTANCEID > = "Instance_1"</Custom> > <Custom Action="SetUpgradeCode_2" Before="AppSearch">INSTANCEID > = "Instance_2"</Custom> > <FindRelatedProducts After ="SetUpgradeCode_2"/> <!--Do > FindRelatedProducts after the last upgradecode CA runs.--> > </InstallUISequence> > <InstallExecuteSequence> > <Custom Action="SetUpgradeCode_1" Before="AppSearch">INSTANCEID > = "Instance_1"</Custom> > <Custom Action="SetUpgradeCode_2" Before="AppSearch">INSTANCEID > = "Instance_2"</Custom> > <FindRelatedProducts After="SetUpgradeCode_2"/> > </InstallExecuteSequence> > ... > </Product> > ------------------------------------------------------------------------------ Benefiting from Server Virtualization: Beyond Initial Workload Consolidation -- Increasing the use of server virtualization is a top priority.Virtualization can reduce costs, simplify management, and improve application availability and disaster protection. Learn more about boosting the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users |
|
In reply to this post by Tyler Walters
RemoveExistingProducts is part of the MajorUpgrade element. The Schedule
attribute is what schedules RemoveExistingProducts. Thanks for the advice though. I am thinking I may have to do a custom action that modifies the UpgradeTable at install time, if that is even possible. On Thu, Apr 14, 2011 at 11:35 AM, Tyler Walters <[hidden email]>wrote: > Currently I can do a major upgrade of a specific instance. There are a > couple problems though. > 1. The default instance is upgraded fine. The transforms are upgraded, > BUT the previous version is not removed. So they both show up in ARP. > 2. I need to be able to not downgrade a specific instance, but be able > to install an old version as a different instance. > > I am currently giving each instance it's own upgrade code and then > scheduling the FindRelatedProducts action after the upgrade codes are set. > > > Here is the current code: > > <Product Id="YOURGUID-7AF1-4854-9B4F-01A6C77CC4AB" > Name="InstanceTransforms" > Language="1033" > Version="8.1.0.0" > Manufacturer="DCT" > UpgradeCode="{YOURGUID-F8CA-4F91-B74D-DF92AE4AB8FF}"> > > ... > > <MajorUpgrade AllowDowngrades="no" DowngradeErrorMessage="A new > version of [ProductName] is already installed. Exiting installation." > Schedule="afterInstallFinalize" /> > > <Property Id="INSTANCEID" Value="Default Instance" Secure="yes" /> > <InstanceTransforms Property="INSTANCEID"> > <Instance Id="Instance_1" > ProductCode="YOURGUID-975B-4CBA-B2CC-B363CAA4312C" > ProductName="InstanceTransforms"/> > <Instance Id="Instance_2" > ProductCode="YOURGUID-CB52-485A-BE2A-1B2A407CD878" > ProductName="InstanceTransforms"/> > </InstanceTransforms> > > <CustomAction Id="SetUpgradeCode_1" Property="UpgradeCode" > Value="{YOURGUID-975B-4CBA-B2CC-B363CAA4312C}" /> > <CustomAction Id="SetUpgradeCode_2" Property="UpgradeCode" > Value="{YOURGUID-CB52-485A-BE2A-1B2A407CD878}" /> > > ... > > <InstallUISequence> > <Custom Action="SetUpgradeCode_1" Before="AppSearch" > >INSTANCEID = "Instance_1"</Custom> > <Custom Action="SetUpgradeCode_2" Before="AppSearch" > >INSTANCEID = "Instance_2"</Custom> > <FindRelatedProducts After ="SetUpgradeCode_2"/> <!--Do > FindRelatedProducts after the last upgradecode CA runs.--> > </InstallUISequence> > <InstallExecuteSequence> > <Custom Action="SetUpgradeCode_1" Before="AppSearch" > >INSTANCEID = "Instance_1"</Custom> > <Custom Action="SetUpgradeCode_2" Before="AppSearch" > >INSTANCEID = "Instance_2"</Custom> > <FindRelatedProducts After="SetUpgradeCode_2"/> > </InstallExecuteSequence> > ... > </Product> > > -- > Tyler Walters - Duck Creek Technologies > > -- Tyler Walters ------------------------------------------------------------------------------ Benefiting from Server Virtualization: Beyond Initial Workload Consolidation -- Increasing the use of server virtualization is a top priority.Virtualization can reduce costs, simplify management, and improve application availability and disaster protection. Learn more about boosting the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users |
|
FINALLY! And naturally it didn't end up being very complicated. :p
So here is what i did. 1. In my .wxs I made an upgrade element to upgrade the product like you normally would EXCEPT I made the upgrade code a random guid (NOT one i am using). This was the only way I could get wix to create the upgrade table in the msi. Since the guid is bogus it will never be found and the installs will continue on as they normally would. 2. I used the 'CustomAction' element to give each instance is own upgrade code and set the 'UpgradeCode' property according to the instance chosen. Note: I scheduled these to run before 'AppSearch'. 3. Then I made a C# custom action to add temporary rows to the Upgrade table. 4. The added rows were a copy of the current rows that were put there by the 'Upgrade' element. EXCEPT I changed the 'UpgradeCode' to be the same as the 'UpgradeCode' in the Property table. 5. This custom action is scheduled to run after the last 'SetUpgradeCode' custom action that was mentioned in step 2. 6. THAT"S IT! On Thu, Apr 14, 2011 at 12:57 PM, Tyler Walters <[hidden email]>wrote: > RemoveExistingProducts is part of the MajorUpgrade element. The Schedule > attribute is what schedules RemoveExistingProducts. > > Thanks for the advice though. > > I am thinking I may have to do a custom action that modifies the > UpgradeTable at install time, if that is even possible. > > > On Thu, Apr 14, 2011 at 11:35 AM, Tyler Walters < > [hidden email]> wrote: > >> Currently I can do a major upgrade of a specific instance. There are a >> couple problems though. >> 1. The default instance is upgraded fine. The transforms are upgraded, >> BUT the previous version is not removed. So they both show up in ARP. >> 2. I need to be able to not downgrade a specific instance, but be able >> to install an old version as a different instance. >> >> I am currently giving each instance it's own upgrade code and then >> scheduling the FindRelatedProducts action after the upgrade codes are set. >> >> >> Here is the current code: >> >> <Product Id="YOURGUID-7AF1-4854-9B4F-01A6C77CC4AB" >> Name="InstanceTransforms" >> Language="1033" >> Version="8.1.0.0" >> Manufacturer="DCT" >> UpgradeCode="{YOURGUID-F8CA-4F91-B74D-DF92AE4AB8FF}"> >> >> ... >> >> <MajorUpgrade AllowDowngrades="no" DowngradeErrorMessage="A new >> version of [ProductName] is already installed. Exiting installation." >> Schedule="afterInstallFinalize" /> >> >> <Property Id="INSTANCEID" Value="Default Instance" Secure="yes" /> >> <InstanceTransforms Property="INSTANCEID"> >> <Instance Id="Instance_1" >> ProductCode="YOURGUID-975B-4CBA-B2CC-B363CAA4312C" >> ProductName="InstanceTransforms"/> >> <Instance Id="Instance_2" >> ProductCode="YOURGUID-CB52-485A-BE2A-1B2A407CD878" >> ProductName="InstanceTransforms"/> >> </InstanceTransforms> >> >> <CustomAction Id="SetUpgradeCode_1" Property="UpgradeCode" >> Value="{YOURGUID-975B-4CBA-B2CC-B363CAA4312C}" /> >> <CustomAction Id="SetUpgradeCode_2" Property="UpgradeCode" >> Value="{YOURGUID-CB52-485A-BE2A-1B2A407CD878}" /> >> >> ... >> >> <InstallUISequence> >> <Custom Action="SetUpgradeCode_1" Before="AppSearch" >> >INSTANCEID = "Instance_1"</Custom> >> <Custom Action="SetUpgradeCode_2" Before="AppSearch" >> >INSTANCEID = "Instance_2"</Custom> >> <FindRelatedProducts After ="SetUpgradeCode_2"/> <!--Do >> FindRelatedProducts after the last upgradecode CA runs.--> >> </InstallUISequence> >> <InstallExecuteSequence> >> <Custom Action="SetUpgradeCode_1" Before="AppSearch" >> >INSTANCEID = "Instance_1"</Custom> >> <Custom Action="SetUpgradeCode_2" Before="AppSearch" >> >INSTANCEID = "Instance_2"</Custom> >> <FindRelatedProducts After="SetUpgradeCode_2"/> >> </InstallExecuteSequence> >> ... >> </Product> >> >> -- >> Tyler Walters - Duck Creek Technologies >> >> > > > -- > Tyler Walters > > -- Tyler Walters ------------------------------------------------------------------------------ Benefiting from Server Virtualization: Beyond Initial Workload Consolidation -- Increasing the use of server virtualization is a top priority.Virtualization can reduce costs, simplify management, and improve application availability and disaster protection. Learn more about boosting the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users |
|
If you want to avoid having to make a bogus upgrade element just use the EnsureTable element for the Upgrade table. Then you would be able to add your custom rows with no problems (since the empty table will be in the MSI).
|
|
Oh cool! Thanks. I hadn't come across that one.
On Fri, Apr 15, 2011 at 12:56 PM, jhennessey <[hidden email]>wrote: > If you want to avoid having to make a bogus upgrade element just use the > EnsureTable element for the Upgrade table. Then you would be able to add > your custom rows with no problems (since the empty table will be in the > MSI). > > -- > View this message in context: > http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Multi-Instance-Major-Upgrades-tp6273489p6277157.html > Sent from the wix-users mailing list archive at Nabble.com. > > > ------------------------------------------------------------------------------ > Benefiting from Server Virtualization: Beyond Initial Workload > Consolidation -- Increasing the use of server virtualization is a top > priority.Virtualization can reduce costs, simplify management, and improve > application availability and disaster protection. Learn more about boosting > the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev > _______________________________________________ > WiX-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/wix-users > -- Tyler Walters ------------------------------------------------------------------------------ Benefiting from Server Virtualization: Beyond Initial Workload Consolidation -- Increasing the use of server virtualization is a top priority.Virtualization can reduce costs, simplify management, and improve application availability and disaster protection. Learn more about boosting the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users |
|
Hi, what is the condition that could be used when a feature is being
reinstalled and or patched? Thx! ------------------------------------------------------------------------------ Benefiting from Server Virtualization: Beyond Initial Workload Consolidation -- Increasing the use of server virtualization is a top priority.Virtualization can reduce costs, simplify management, and improve application availability and disaster protection. Learn more about boosting the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users |
|
In reply to this post by Tyler Walters
Could all of the custom actions have been avoided if the InstanceTransform
element provided the ability to specify a unique UpgradeCode? On Fri, Apr 15, 2011 at 7:54 AM, Tyler Walters <[hidden email]>wrote: > FINALLY! And naturally it didn't end up being very complicated. :p > > So here is what i did. > > > 1. In my .wxs I made an upgrade element to upgrade the product like you > normally would EXCEPT I made the upgrade code a random guid (NOT one i am > using). This was the only way I could get wix to create the upgrade table > in > the msi. Since the guid is bogus it will never be found and the installs > will continue on as they normally would. > 2. I used the 'CustomAction' element to give each instance is own upgrade > code and set the 'UpgradeCode' property according to the instance chosen. > Note: I scheduled these to run before 'AppSearch'. > 3. Then I made a C# custom action to add temporary rows to the Upgrade > table. > 4. The added rows were a copy of the current rows that were put there by > the 'Upgrade' element. EXCEPT I changed the 'UpgradeCode' to be the same > as > the 'UpgradeCode' in the Property table. > 5. This custom action is scheduled to run after the last 'SetUpgradeCode' > custom action that was mentioned in step 2. > 6. THAT"S IT! > > > On Thu, Apr 14, 2011 at 12:57 PM, Tyler Walters > <[hidden email]>wrote: > > > RemoveExistingProducts is part of the MajorUpgrade element. The Schedule > > attribute is what schedules RemoveExistingProducts. > > > > Thanks for the advice though. > > > > I am thinking I may have to do a custom action that modifies the > > UpgradeTable at install time, if that is even possible. > > > > > > On Thu, Apr 14, 2011 at 11:35 AM, Tyler Walters < > > [hidden email]> wrote: > > > >> Currently I can do a major upgrade of a specific instance. There are a > >> couple problems though. > >> 1. The default instance is upgraded fine. The transforms are > upgraded, > >> BUT the previous version is not removed. So they both show up in ARP. > >> 2. I need to be able to not downgrade a specific instance, but be > able > >> to install an old version as a different instance. > >> > >> I am currently giving each instance it's own upgrade code and then > >> scheduling the FindRelatedProducts action after the upgrade codes are > set. > >> > >> > >> Here is the current code: > >> > >> <Product Id="YOURGUID-7AF1-4854-9B4F-01A6C77CC4AB" > >> Name="InstanceTransforms" > >> Language="1033" > >> Version="8.1.0.0" > >> Manufacturer="DCT" > >> > UpgradeCode="{YOURGUID-F8CA-4F91-B74D-DF92AE4AB8FF}"> > >> > >> ... > >> > >> <MajorUpgrade AllowDowngrades="no" DowngradeErrorMessage="A new > >> version of [ProductName] is already installed. Exiting installation." > >> Schedule="afterInstallFinalize" /> > >> > >> <Property Id="INSTANCEID" Value="Default Instance" Secure="yes" > /> > >> <InstanceTransforms Property="INSTANCEID"> > >> <Instance Id="Instance_1" > >> ProductCode="YOURGUID-975B-4CBA-B2CC-B363CAA4312C" > >> ProductName="InstanceTransforms"/> > >> <Instance Id="Instance_2" > >> ProductCode="YOURGUID-CB52-485A-BE2A-1B2A407CD878" > >> ProductName="InstanceTransforms"/> > >> </InstanceTransforms> > >> > >> <CustomAction Id="SetUpgradeCode_1" Property="UpgradeCode" > >> Value="{YOURGUID-975B-4CBA-B2CC-B363CAA4312C}" /> > >> <CustomAction Id="SetUpgradeCode_2" Property="UpgradeCode" > >> Value="{YOURGUID-CB52-485A-BE2A-1B2A407CD878}" /> > >> > >> ... > >> > >> <InstallUISequence> > >> <Custom Action="SetUpgradeCode_1" Before="AppSearch" > >> >INSTANCEID = "Instance_1"</Custom> > >> <Custom Action="SetUpgradeCode_2" Before="AppSearch" > >> >INSTANCEID = "Instance_2"</Custom> > >> <FindRelatedProducts After ="SetUpgradeCode_2"/> <!--Do > >> FindRelatedProducts after the last upgradecode CA runs.--> > >> </InstallUISequence> > >> <InstallExecuteSequence> > >> <Custom Action="SetUpgradeCode_1" Before="AppSearch" > >> >INSTANCEID = "Instance_1"</Custom> > >> <Custom Action="SetUpgradeCode_2" Before="AppSearch" > >> >INSTANCEID = "Instance_2"</Custom> > >> <FindRelatedProducts After="SetUpgradeCode_2"/> > >> </InstallExecuteSequence> > >> ... > >> </Product> > >> > >> -- > >> Tyler Walters - Duck Creek Technologies > >> > >> > > > > > > -- > > Tyler Walters > > > > > > > -- > Tyler Walters > > ------------------------------------------------------------------------------ > Benefiting from Server Virtualization: Beyond Initial Workload > Consolidation -- Increasing the use of server virtualization is a top > priority.Virtualization can reduce costs, simplify management, and improve > application availability and disaster protection. Learn more about boosting > the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev > _______________________________________________ > WiX-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/wix-users > > -- virtually, Rob Mensching - http://RobMensching.com LLC ------------------------------------------------------------------------------ Benefiting from Server Virtualization: Beyond Initial Workload Consolidation -- Increasing the use of server virtualization is a top priority.Virtualization can reduce costs, simplify management, and improve application availability and disaster protection. Learn more about boosting the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users |
|
In reply to this post by Leo ...
http://lmgtfy.com/?q=REINSTALL+property
-----Original Message----- From: Leo [mailto:[hidden email]] Sent: 16 April 2011 07:13 To: General discussion for Windows Installer XML toolset. Subject: [WiX-users] condition for feature being reinstalled or patch Hi, what is the condition that could be used when a feature is being reinstalled and or patched? Thx! ------------------------------------------------------------------------ ------ Benefiting from Server Virtualization: Beyond Initial Workload Consolidation -- Increasing the use of server virtualization is a top priority.Virtualization can reduce costs, simplify management, and improve application availability and disaster protection. Learn more about boosting the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Benefiting from Server Virtualization: Beyond Initial Workload Consolidation -- Increasing the use of server virtualization is a top priority.Virtualization can reduce costs, simplify management, and improve application availability and disaster protection. Learn more about boosting the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users |
|
In reply to this post by Rob Mensching-7
YES! The custom actions for setting an upgrade code for each instance could
be resolved by having an UpgradeCode attribute in the InstanceTransform element. :D However, unless there is something I am missing with multi-instance major upgrades, I would still need the custom action that updates the Upgrade table with the instance upgrade code, so that the correct instance is found during the FIndRelatedProducts action. Unless, maybe, the MajorUpgrade element could also be a part of the transform. I don't know if that would work or not. Basically somehow I need to get the Upgrade table to reflect the UpgradeCode property. Thanks. On Sun, Apr 17, 2011 at 1:31 PM, Rob Mensching <[hidden email]> wrote: > Could all of the custom actions have been avoided if the InstanceTransform > element provided the ability to specify a unique UpgradeCode? > > On Fri, Apr 15, 2011 at 7:54 AM, Tyler Walters > <[hidden email]>wrote: > > > FINALLY! And naturally it didn't end up being very complicated. :p > > > > So here is what i did. > > > > > > 1. In my .wxs I made an upgrade element to upgrade the product like you > > normally would EXCEPT I made the upgrade code a random guid (NOT one i > am > > using). This was the only way I could get wix to create the upgrade > table > > in > > the msi. Since the guid is bogus it will never be found and the > installs > > will continue on as they normally would. > > 2. I used the 'CustomAction' element to give each instance is own > upgrade > > code and set the 'UpgradeCode' property according to the instance > chosen. > > Note: I scheduled these to run before 'AppSearch'. > > 3. Then I made a C# custom action to add temporary rows to the Upgrade > > table. > > 4. The added rows were a copy of the current rows that were put there > by > > the 'Upgrade' element. EXCEPT I changed the 'UpgradeCode' to be the > same > > as > > the 'UpgradeCode' in the Property table. > > 5. This custom action is scheduled to run after the last > 'SetUpgradeCode' > > custom action that was mentioned in step 2. > > 6. THAT"S IT! > > > > > > On Thu, Apr 14, 2011 at 12:57 PM, Tyler Walters > > <[hidden email]>wrote: > > > > > RemoveExistingProducts is part of the MajorUpgrade element. The > Schedule > > > attribute is what schedules RemoveExistingProducts. > > > > > > Thanks for the advice though. > > > > > > I am thinking I may have to do a custom action that modifies the > > > UpgradeTable at install time, if that is even possible. > > > > > > > > > On Thu, Apr 14, 2011 at 11:35 AM, Tyler Walters < > > > [hidden email]> wrote: > > > > > >> Currently I can do a major upgrade of a specific instance. There are a > > >> couple problems though. > > >> 1. The default instance is upgraded fine. The transforms are > > upgraded, > > >> BUT the previous version is not removed. So they both show up in ARP. > > >> 2. I need to be able to not downgrade a specific instance, but be > > able > > >> to install an old version as a different instance. > > >> > > >> I am currently giving each instance it's own upgrade code and then > > >> scheduling the FindRelatedProducts action after the upgrade codes are > > set. > > >> > > >> > > >> Here is the current code: > > >> > > >> <Product Id="YOURGUID-7AF1-4854-9B4F-01A6C77CC4AB" > > >> Name="InstanceTransforms" > > >> Language="1033" > > >> Version="8.1.0.0" > > >> Manufacturer="DCT" > > >> > > UpgradeCode="{YOURGUID-F8CA-4F91-B74D-DF92AE4AB8FF}"> > > >> > > >> ... > > >> > > >> <MajorUpgrade AllowDowngrades="no" DowngradeErrorMessage="A > new > > >> version of [ProductName] is already installed. Exiting installation." > > >> Schedule="afterInstallFinalize" /> > > >> > > >> <Property Id="INSTANCEID" Value="Default Instance" > Secure="yes" > > /> > > >> <InstanceTransforms Property="INSTANCEID"> > > >> <Instance Id="Instance_1" > > >> ProductCode="YOURGUID-975B-4CBA-B2CC-B363CAA4312C" > > >> ProductName="InstanceTransforms"/> > > >> <Instance Id="Instance_2" > > >> ProductCode="YOURGUID-CB52-485A-BE2A-1B2A407CD878" > > >> ProductName="InstanceTransforms"/> > > >> </InstanceTransforms> > > >> > > >> <CustomAction Id="SetUpgradeCode_1" Property="UpgradeCode" > > >> Value="{YOURGUID-975B-4CBA-B2CC-B363CAA4312C}" /> > > >> <CustomAction Id="SetUpgradeCode_2" Property="UpgradeCode" > > >> Value="{YOURGUID-CB52-485A-BE2A-1B2A407CD878}" /> > > >> > > >> ... > > >> > > >> <InstallUISequence> > > >> <Custom Action="SetUpgradeCode_1" Before="AppSearch" > > >> >INSTANCEID = "Instance_1"</Custom> > > >> <Custom Action="SetUpgradeCode_2" Before="AppSearch" > > >> >INSTANCEID = "Instance_2"</Custom> > > >> <FindRelatedProducts After ="SetUpgradeCode_2"/> <!--Do > > >> FindRelatedProducts after the last upgradecode CA runs.--> > > >> </InstallUISequence> > > >> <InstallExecuteSequence> > > >> <Custom Action="SetUpgradeCode_1" Before="AppSearch" > > >> >INSTANCEID = "Instance_1"</Custom> > > >> <Custom Action="SetUpgradeCode_2" Before="AppSearch" > > >> >INSTANCEID = "Instance_2"</Custom> > > >> <FindRelatedProducts After="SetUpgradeCode_2"/> > > >> </InstallExecuteSequence> > > >> ... > > >> </Product> > > >> > > >> -- > > >> Tyler Walters - Duck Creek Technologies > > >> > > >> > > > > > > > > > -- > > > Tyler Walters > > > > > > > > > > > > -- > > Tyler Walters > > > > > ------------------------------------------------------------------------------ > > Benefiting from Server Virtualization: Beyond Initial Workload > > Consolidation -- Increasing the use of server virtualization is a top > > priority.Virtualization can reduce costs, simplify management, and > improve > > application availability and disaster protection. Learn more about > boosting > > the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev > > _______________________________________________ > > WiX-users mailing list > > [hidden email] > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > -- > virtually, Rob Mensching - http://RobMensching.com LLC > > ------------------------------------------------------------------------------ > Benefiting from Server Virtualization: Beyond Initial Workload > Consolidation -- Increasing the use of server virtualization is a top > priority.Virtualization can reduce costs, simplify management, and improve > application availability and disaster protection. Learn more about boosting > the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev > _______________________________________________ > WiX-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/wix-users > -- Tyler Walters ------------------------------------------------------------------------------ Benefiting from Server Virtualization: Beyond Initial Workload Consolidation -- Increasing the use of server virtualization is a top priority.Virtualization can reduce costs, simplify management, and improve application availability and disaster protection. Learn more about boosting the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users |
|
AFAIK, That's pretty much how InstallShield has worked for several years now. I was doing multiple instance installs back in 2006/2007 without any issues using IS12. IS2009 came out with a better bootstrapper to handle the servicing better but the actual MSI generation was in 12.
One thing they don't do however ( growth opportunity here ) is transform the directory table. I had to have a custom action to set the INSTALLDIR to a suitable default for the instance. Also the ability to transform the ShortCut table would be useful as the Name column isn't formattable. ( Mostly useful when you want shortcuts on the desktop meaning their Directory is the same. ) I had to use a custom action to emit temp rows for that one also. --- Christopher Painter, Author of Deployment Engineering Blog Have a hot tip, know a secret or read a really good thread that deserves attention? E-Mail Me From: Tyler Walters <[hidden email]> To: General discussion for Windows Installer XML toolset. <[hidden email]> Sent: Monday, April 18, 2011 10:18 AM Subject: Re: [WiX-users] Multi-Instance Major Upgrades YES! The custom actions for setting an upgrade code for each instance could be resolved by having an UpgradeCode attribute in the InstanceTransform element. :D However, unless there is something I am missing with multi-instance major upgrades, I would still need the custom action that updates the Upgrade table with the instance upgrade code, so that the correct instance is found during the FIndRelatedProducts action. Unless, maybe, the MajorUpgrade element could also be a part of the transform. I don't know if that would work or not. Basically somehow I need to get the Upgrade table to reflect the UpgradeCode property. Thanks. On Sun, Apr 17, 2011 at 1:31 PM, Rob Mensching <[hidden email]> wrote: > Could all of the custom actions have been avoided if the InstanceTransform > element provided the ability to specify a unique UpgradeCode? > > On Fri, Apr 15, 2011 at 7:54 AM, Tyler Walters > <[hidden email]>wrote: > > > FINALLY! And naturally it didn't end up being very complicated. :p > > > > So here is what i did. > > > > > > 1. In my .wxs I made an upgrade element to upgrade the product like you > > normally would EXCEPT I made the upgrade code a random guid (NOT one i > am > > using). This was the only way I could get wix to create the upgrade > table > > in > > the msi. Since the guid is bogus it will never be found and the > installs > > will continue on as they normally would. > > 2. I used the 'CustomAction' element to give each instance is own > upgrade > > code and set the 'UpgradeCode' property according to the instance > chosen. > > Note: I scheduled these to run before 'AppSearch'. > > 3. Then I made a C# custom action to add temporary rows to the Upgrade > > table. > > 4. The added rows were a copy of the current rows that were put there > by > > the 'Upgrade' element. EXCEPT I changed the 'UpgradeCode' to be the > same > > as > > the 'UpgradeCode' in the Property table. > > 5. This custom action is scheduled to run after the last > 'SetUpgradeCode' > > custom action that was mentioned in step 2. > > 6. THAT"S IT! > > > > > > On Thu, Apr 14, 2011 at 12:57 PM, Tyler Walters > > <[hidden email]>wrote: > > > > > RemoveExistingProducts is part of the MajorUpgrade element. The > Schedule > > > attribute is what schedules RemoveExistingProducts. > > > > > > Thanks for the advice though. > > > > > > I am thinking I may have to do a custom action that modifies the > > > UpgradeTable at install time, if that is even possible. > > > > > > > > > On Thu, Apr 14, 2011 at 11:35 AM, Tyler Walters < > > > [hidden email]> wrote: > > > > > >> Currently I can do a major upgrade of a specific instance. There are a > > >> couple problems though. > > >> 1. The default instance is upgraded fine. The transforms are > > upgraded, > > >> BUT the previous version is not removed. So they both show up in ARP. > > >> 2. I need to be able to not downgrade a specific instance, but be > > able > > >> to install an old version as a different instance. > > >> > > >> I am currently giving each instance it's own upgrade code and then > > >> scheduling the FindRelatedProducts action after the upgrade codes are > > set. > > >> > > >> > > >> Here is the current code: > > >> > > >> <Product Id="YOURGUID-7AF1-4854-9B4F-01A6C77CC4AB" > > >> Name="InstanceTransforms" > > >> Language="1033" > > >> Version="8.1.0.0" > > >> Manufacturer="DCT" > > >> > > UpgradeCode="{YOURGUID-F8CA-4F91-B74D-DF92AE4AB8FF}"> > > >> > > >> ... > > >> > > >> <MajorUpgrade AllowDowngrades="no" DowngradeErrorMessage="A > new > > >> version of [ProductName] is already installed. Exiting installation." > > >> Schedule="afterInstallFinalize" /> > > >> > > >> <Property Id="INSTANCEID" Value="Default Instance" > Secure="yes" > > /> > > >> <InstanceTransforms Property="INSTANCEID"> > > >> <Instance Id="Instance_1" > > >> ProductCode="YOURGUID-975B-4CBA-B2CC-B363CAA4312C" > > >> ProductName="InstanceTransforms"/> > > >> <Instance Id="Instance_2" > > >> ProductCode="YOURGUID-CB52-485A-BE2A-1B2A407CD878" > > >> ProductName="InstanceTransforms"/> > > >> </InstanceTransforms> > > >> > > >> <CustomAction Id="SetUpgradeCode_1" Property="UpgradeCode" > > >> Value="{YOURGUID-975B-4CBA-B2CC-B363CAA4312C}" /> > > >> <CustomAction Id="SetUpgradeCode_2" Property="UpgradeCode" > > >> Value="{YOURGUID-CB52-485A-BE2A-1B2A407CD878}" /> > > >> > > >> ... > > >> > > >> <InstallUISequence> > > >> <Custom Action="SetUpgradeCode_1" Before="AppSearch" > > >> >INSTANCEID = "Instance_1"</Custom> > > >> <Custom Action="SetUpgradeCode_2" Before="AppSearch" > > >> >INSTANCEID = "Instance_2"</Custom> > > >> <FindRelatedProducts After ="SetUpgradeCode_2"/> <!--Do > > >> FindRelatedProducts after the last upgradecode CA runs.--> > > >> </InstallUISequence> > > >> <InstallExecuteSequence> > > >> <Custom Action="SetUpgradeCode_1" Before="AppSearch" > > >> >INSTANCEID = "Instance_1"</Custom> > > >> <Custom Action="SetUpgradeCode_2" Before="AppSearch" > > >> >INSTANCEID = "Instance_2"</Custom> > > >> <FindRelatedProducts After="SetUpgradeCode_2"/> > > >> </InstallExecuteSequence> > > >> ... > > >> </Product> > > >> > > >> -- > > >> Tyler Walters - Duck Creek Technologies > > >> > > >> > > > > > > > > > -- > > > Tyler Walters > > > > > > > > > > > > -- > > Tyler Walters > > > > > ------------------------------------------------------------------------------ > > Benefiting from Server Virtualization: Beyond Initial Workload > > Consolidation -- Increasing the use of server virtualization is a top > > priority.Virtualization can reduce costs, simplify management, and > improve > > application availability and disaster protection. Learn more about > boosting > > the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev > > _______________________________________________ > > WiX-users mailing list > > [hidden email] > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > -- > virtually, Rob Mensching - http://RobMensching.com LLC > > ------------------------------------------------------------------------------ > Benefiting from Server Virtualization: Beyond Initial Workload > Consolidation -- Increasing the use of server virtualization is a top > priority.Virtualization can reduce costs, simplify management, and improve > application availability and disaster protection. Learn more about boosting > the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev > _______________________________________________ > WiX-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/wix-users > -- Tyler Walters ------------------------------------------------------------------------------ Benefiting from Server Virtualization: Beyond Initial Workload Consolidation -- Increasing the use of server virtualization is a top priority.Virtualization can reduce costs, simplify management, and improve application availability and disaster protection. Learn more about boosting the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Benefiting from Server Virtualization: Beyond Initial Workload Consolidation -- Increasing the use of server virtualization is a top priority.Virtualization can reduce costs, simplify management, and improve application availability and disaster protection. Learn more about boosting the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users |
|
In reply to this post by Pally Sandher
I have condition for a custom action as follows: &SomeFeature = 3 OR (&SomeFeature = -1 AND !SomeFeature = 3) OR (REINSTALL AND (REINSTALL >< SomeFeature)) For the case where the "SomeFeature" feature is already installed and I do a change install to remove this feature, this condition evaluates to true but from the log REINSTALL property does not contain "SomeFeature". The other portion of the condition "&SomeFeature = 3 OR (&SomeFeature = -1 AND !SomeFeature = 3)" should NOT be evaluated to true since the "SomeFeature" feature is been selected to be removed and I have tested this portion of the condition is as expected. Why is "REINSTALL >< SomeFeature" evaluates to true since REINSTALL does not contain "SomeFeature"? Is this a bug? Thx! > Date: Mon, 18 Apr 2011 10:25:58 +0100 > From: [hidden email] > To: [hidden email] > Subject: Re: [WiX-users] condition for feature being reinstalled or patch > > http://lmgtfy.com/?q=REINSTALL+property > > -----Original Message----- > From: Leo [mailto:[hidden email]] > Sent: 16 April 2011 07:13 > To: General discussion for Windows Installer XML toolset. > Subject: [WiX-users] condition for feature being reinstalled or patch > > Hi, what is the condition that could be used when a feature is being > reinstalled and or patched? Thx! > > > ------------------------------------------------------------------------ > ------ > Benefiting from Server Virtualization: Beyond Initial Workload > Consolidation -- Increasing the use of server virtualization is a top > priority.Virtualization can reduce costs, simplify management, and > improve > application availability and disaster protection. Learn more about > boosting > the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev > _______________________________________________ > WiX-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > ------------------------------------------------------------------------------ > Benefiting from Server Virtualization: Beyond Initial Workload > Consolidation -- Increasing the use of server virtualization is a top > priority.Virtualization can reduce costs, simplify management, and improve > application availability and disaster protection. Learn more about boosting > the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev > _______________________________________________ > WiX-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Fulfilling the Lean Software Promise Lean software platforms are now widely adopted and the benefits have been demonstrated beyond question. Learn why your peers are replacing JEE containers with lightweight application servers - and what you can gain from the move. http://p.sf.net/sfu/vmware-sfemails _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users |
|
Try
REINSTALL >< "SomeFeature" Also remember that such comparisons are case-sensitive. -----Original Message----- From: Leo ... [mailto:[hidden email]] Sent: Friday, April 22, 2011 12:21 AM To: [hidden email] Subject: [WiX-users] condition for feature being reinstalled or patch I have condition for a custom action as follows: &SomeFeature = 3 OR (&SomeFeature = -1 AND !SomeFeature = 3) OR (REINSTALL AND (REINSTALL >< SomeFeature)) For the case where the "SomeFeature" feature is already installed and I do a change install to remove this feature, this condition evaluates to true but from the log REINSTALL property does not contain "SomeFeature". The other portion of the condition "&SomeFeature = 3 OR (&SomeFeature = -1 AND !SomeFeature = 3)" should NOT be evaluated to true since the "SomeFeature" feature is been selected to be removed and I have tested this portion of the condition is as expected. Why is "REINSTALL >< SomeFeature" evaluates to true since REINSTALL does not contain "SomeFeature"? Is this a bug? Thx! > Date: Mon, 18 Apr 2011 10:25:58 +0100 > From: [hidden email] > To: [hidden email] > Subject: Re: [WiX-users] condition for feature being reinstalled or patch > > http://lmgtfy.com/?q=REINSTALL+property > > -----Original Message----- > From: Leo [mailto:[hidden email]] > Sent: 16 April 2011 07:13 > To: General discussion for Windows Installer XML toolset. > Subject: [WiX-users] condition for feature being reinstalled or patch > > Hi, what is the condition that could be used when a feature is being > reinstalled and or patched? Thx! > > > ------------------------------------------------------------------------ > ------ > Benefiting from Server Virtualization: Beyond Initial Workload > Consolidation -- Increasing the use of server virtualization is a top > priority.Virtualization can reduce costs, simplify management, and > improve > application availability and disaster protection. Learn more about > boosting > the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev > _______________________________________________ > WiX-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > ------------------------------------------------------------------------------ > Benefiting from Server Virtualization: Beyond Initial Workload > Consolidation -- Increasing the use of server virtualization is a top > priority.Virtualization can reduce costs, simplify management, and improve > application availability and disaster protection. Learn more about boosting > the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev > _______________________________________________ > WiX-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Fulfilling the Lean Software Promise Lean software platforms are now widely adopted and the benefits have been demonstrated beyond question. Learn why your peers are replacing JEE containers with lightweight application servers - and what you can gain from the move. http://p.sf.net/sfu/vmware-sfemails _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Fulfilling the Lean Software Promise Lean software platforms are now widely adopted and the benefits have been demonstrated beyond question. Learn why your peers are replacing JEE containers with lightweight application servers - and what you can gain from the move. http://p.sf.net/sfu/vmware-sfemails _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users |
|
This post has NOT been accepted by the mailing list yet.
In reply to this post by Tyler Walters
Hi Rob,
Did you make any moves on adding the property for the upgrades? John |
| Powered by Nabble | See how NAML generates this page |
