Re: [WiX-users] help controlling uninstall bundle behavior
After much reading, I am trying to use bundle the wrong way. By design the bundle is the unified user interface to the stuff installed. Instead I will simply let the bundle appear in Programs and Features, and hide everything that will be uninsulated by the bundle. Some 3rd party ExePackages don't want to uninstall via the bundle anyway. On Thu, 2013-06-13 at 09:34 -0700, jo...@msli.com wrote: I need some help finding a good behavior for uninstalling using bundles. My bundle installs 4 things (wxs at end of this message): Two ExePackage, Two MsiPackage From Control Panel-Programs and Features, I see an entry for each item in my chain, which I like. I also see multiple entries for my bundle, which I don't like as it could confuse the users. Additionally, Uninstalling the bundle does not uninstall the items in the chain, it simply removes the bundle from Control Panel-Programs and Features which seems like busy work. My ignorant view, and please correct me if I'm wrong, thinks users will be confused by seeing bundle in Control Panel-Programs and Features, in addition to the chained packages, so maybe it should not be there, as it has no functional purpose. I see two Bundle attributes: DisableModify DisableRemove which seem to address hiding my bundle in Control Panel-Programs and Features, but not cleanly? http://wix.sourceforge.net/manual-wix3/wix_xsd_bundle.htm says I just find some other way to clean out my bundle, but no examples given. Has anyone found a nice recipe for dealing with bundles? My Wxs for the Bundle follows: ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; xmlns:bal=http://schemas.microsoft.com/wix/BalExtension; xmlns:util=http://schemas.microsoft.com/wix/UtilExtension; Bundle Name=$(var.BundleExe) Version=1.0.0.0 Manufacturer=$(var.MyCompanyName) Copyright=(c) All rights reserved. UpgradeCode={$(var.Guid_Bundle)} HelpTelephone=1 234 567 8910 HelpUrl=https://mycopany.com/software/compass?section=support; UpdateUrl=https://mycompany.com/software/compass?section=download; AboutUrl=https://mycompany.com/software/compass?section=overview; SplashScreenSourceFile=../ProgramFiles/Resources/Images/InstallerHeaderImage.bmp !-- Display License and Logo -- BootstrapperApplicationRef Id=WixStandardBootstrapperApplication.HyperlinkLicense bal:WixStandardBootstrapperApplication LicenseUrl=https://www.meyersound.com/software/compass?section=download; LogoFile=../Source/Resources/Images/AboutCompass.png / /BootstrapperApplicationRef !-- BEGIN Conditional Def -- !-- Check if WinPcap is installed and at least some version -- util:RegistrySearch Id=RegistrySearchWinPcapHas Variable=WinPcapInstalled Root=HKLM Key=SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall \WinPcapInst Result=exists / util:RegistrySearch Id=RegistrySearchWinPcapMajor Variable=WinPcapVersionMajor Root=HKLM Key=SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall \WinPcapInst Value=VersionMajor Format=raw Result=value / util:RegistrySearch Id=RegistrySearchWinPcapMinor Variable=WinPcapVersionMinor Root=HKLM Key=SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall \WinPcapInst Value=VersionMinor Format=raw Result=value / !-- Check if Bounjour Print Services is installed -- util:RegistrySearch Id=RegistrySearchBonjourHas Variable=BonjourDLL Root=HKLM Key=SOFTWARE\Classes\AppID\Bonjour.DLL Result=exists / util:RegistrySearch Id=RegistrySearchBonjourValue Variable=BounjourVersion Root=HKLM Key=SOFTWARE\Apple Inc.\Bonjour Value=Version Format=raw Result=value / !-- Check if Avdeccproxy is installed and at least some version -- util:RegistrySearch Id=RegistrySearchProxyHas Variable=ProxyInstalled Root=HKLM Key=SOFTWARE\Meyer Sound\AVDECC Proxy Result=exists / !-- END Conditional Def -- !-- Begin Chain -- Chain !-- Will not install if 4.1.3 or better is installed -- ExePackage Id=WinPcap Name=WinPcap_4_1_3.exe Vital=no Compressed=no DownloadUrl=http://www.winpcap.org/install/bin/WinPcap_4_1_3.exe; InstallCondition=NOT WinPcapInstalled OR ( 4 WinPcapVersionMajor AND 1 WinPcapVersionMinor) RemotePayload Description=WinPcap 4.1.3 installer Hash=e2516fcd1573e70334c8f50bee5241cdfdf48a00 ProductName=WinPcap 4.1.3 Size=915128 Version=4.1.0.2980 / /ExePackage !-- Will not install if 2.0.2.0 or better is installed
Re: [WiX-users] help controlling uninstall bundle behavior
That makes a great deal of sense. smile/ Too bad the ExePackages won't uninstall cleanly. DetectConditions are still important. On Fri, Jun 14, 2013 at 6:11 PM, jo...@msli.com jo...@msli.com wrote: After much reading, I am trying to use bundle the wrong way. By design the bundle is the unified user interface to the stuff installed. Instead I will simply let the bundle appear in Programs and Features, and hide everything that will be uninsulated by the bundle. Some 3rd party ExePackages don't want to uninstall via the bundle anyway. On Thu, 2013-06-13 at 09:34 -0700, jo...@msli.com wrote: I need some help finding a good behavior for uninstalling using bundles. My bundle installs 4 things (wxs at end of this message): Two ExePackage, Two MsiPackage From Control Panel-Programs and Features, I see an entry for each item in my chain, which I like. I also see multiple entries for my bundle, which I don't like as it could confuse the users. Additionally, Uninstalling the bundle does not uninstall the items in the chain, it simply removes the bundle from Control Panel-Programs and Features which seems like busy work. My ignorant view, and please correct me if I'm wrong, thinks users will be confused by seeing bundle in Control Panel-Programs and Features, in addition to the chained packages, so maybe it should not be there, as it has no functional purpose. I see two Bundle attributes: DisableModify DisableRemove which seem to address hiding my bundle in Control Panel-Programs and Features, but not cleanly? http://wix.sourceforge.net/manual-wix3/wix_xsd_bundle.htm says I just find some other way to clean out my bundle, but no examples given. Has anyone found a nice recipe for dealing with bundles? My Wxs for the Bundle follows: ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; xmlns:bal=http://schemas.microsoft.com/wix/BalExtension; xmlns:util=http://schemas.microsoft.com/wix/UtilExtension; Bundle Name=$(var.BundleExe) Version=1.0.0.0 Manufacturer=$(var.MyCompanyName) Copyright=(c) All rights reserved. UpgradeCode={$(var.Guid_Bundle)} HelpTelephone=1 234 567 8910 HelpUrl=https://mycopany.com/software/compass?section=support; UpdateUrl=https://mycompany.com/software/compass?section=download; AboutUrl=https://mycompany.com/software/compass?section=overview; SplashScreenSourceFile=../ProgramFiles/Resources/Images/InstallerHeaderImage.bmp !-- Display License and Logo -- BootstrapperApplicationRef Id=WixStandardBootstrapperApplication.HyperlinkLicense bal:WixStandardBootstrapperApplication LicenseUrl=https://www.meyersound.com/software/compass?section=download LogoFile=../Source/Resources/Images/AboutCompass.png / /BootstrapperApplicationRef !-- BEGIN Conditional Def -- !-- Check if WinPcap is installed and at least some version -- util:RegistrySearch Id=RegistrySearchWinPcapHas Variable=WinPcapInstalled Root=HKLM Key=SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall \WinPcapInst Result=exists / util:RegistrySearch Id=RegistrySearchWinPcapMajor Variable=WinPcapVersionMajor Root=HKLM Key=SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall \WinPcapInst Value=VersionMajor Format=raw Result=value / util:RegistrySearch Id=RegistrySearchWinPcapMinor Variable=WinPcapVersionMinor Root=HKLM Key=SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall \WinPcapInst Value=VersionMinor Format=raw Result=value / !-- Check if Bounjour Print Services is installed -- util:RegistrySearch Id=RegistrySearchBonjourHas Variable=BonjourDLL Root=HKLM Key=SOFTWARE\Classes\AppID\Bonjour.DLL Result=exists / util:RegistrySearch Id=RegistrySearchBonjourValue Variable=BounjourVersion Root=HKLM Key=SOFTWARE\Apple Inc.\Bonjour Value=Version Format=raw Result=value / !-- Check if Avdeccproxy is installed and at least some version -- util:RegistrySearch Id=RegistrySearchProxyHas Variable=ProxyInstalled Root=HKLM Key=SOFTWARE\Meyer Sound\AVDECC Proxy Result=exists / !-- END Conditional Def -- !-- Begin Chain -- Chain !-- Will not install if 4.1.3 or better is installed -- ExePackage Id=WinPcap Name=WinPcap_4_1_3.exe Vital=no Compressed=no DownloadUrl=http://www.winpcap.org/install/bin/WinPcap_4_1_3.exe; InstallCondition=NOT WinPcapInstalled OR ( 4 WinPcapVersionMajor AND 1 WinPcapVersionMinor)
[WiX-users] help controlling uninstall bundle behavior
I need some help finding a good behavior for uninstalling using bundles. My bundle installs 4 things (wxs at end of this message): Two ExePackage, Two MsiPackage From Control Panel-Programs and Features, I see an entry for each item in my chain, which I like. I also see multiple entries for my bundle, which I don't like as it could confuse the users. Additionally, Uninstalling the bundle does not uninstall the items in the chain, it simply removes the bundle from Control Panel-Programs and Features which seems like busy work. My ignorant view, and please correct me if I'm wrong, thinks users will be confused by seeing bundle in Control Panel-Programs and Features, in addition to the chained packages, so maybe it should not be there, as it has no functional purpose. I see two Bundle attributes: DisableModify DisableRemove which seem to address hiding my bundle in Control Panel-Programs and Features, but not cleanly? http://wix.sourceforge.net/manual-wix3/wix_xsd_bundle.htm says I just find some other way to clean out my bundle, but no examples given. Has anyone found a nice recipe for dealing with bundles? My Wxs for the Bundle follows: ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; xmlns:bal=http://schemas.microsoft.com/wix/BalExtension; xmlns:util=http://schemas.microsoft.com/wix/UtilExtension; Bundle Name=$(var.BundleExe) Version=1.0.0.0 Manufacturer=$(var.MyCompanyName) Copyright=(c) All rights reserved. UpgradeCode={$(var.Guid_Bundle)} HelpTelephone=1 234 567 8910 HelpUrl=https://mycopany.com/software/compass?section=support; UpdateUrl=https://mycompany.com/software/compass?section=download; AboutUrl=https://mycompany.com/software/compass?section=overview; SplashScreenSourceFile=../ProgramFiles/Resources/Images/InstallerHeaderImage.bmp !-- Display License and Logo -- BootstrapperApplicationRef Id=WixStandardBootstrapperApplication.HyperlinkLicense bal:WixStandardBootstrapperApplication LicenseUrl=https://www.meyersound.com/software/compass?section=download; LogoFile=../Source/Resources/Images/AboutCompass.png / /BootstrapperApplicationRef !-- BEGIN Conditional Def -- !-- Check if WinPcap is installed and at least some version -- util:RegistrySearch Id=RegistrySearchWinPcapHas Variable=WinPcapInstalled Root=HKLM Key=SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall \WinPcapInst Result=exists / util:RegistrySearch Id=RegistrySearchWinPcapMajor Variable=WinPcapVersionMajor Root=HKLM Key=SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall \WinPcapInst Value=VersionMajor Format=raw Result=value / util:RegistrySearch Id=RegistrySearchWinPcapMinor Variable=WinPcapVersionMinor Root=HKLM Key=SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall \WinPcapInst Value=VersionMinor Format=raw Result=value / !-- Check if Bounjour Print Services is installed -- util:RegistrySearch Id=RegistrySearchBonjourHas Variable=BonjourDLL Root=HKLM Key=SOFTWARE\Classes\AppID\Bonjour.DLL Result=exists / util:RegistrySearch Id=RegistrySearchBonjourValue Variable=BounjourVersion Root=HKLM Key=SOFTWARE\Apple Inc.\Bonjour Value=Version Format=raw Result=value / !-- Check if Avdeccproxy is installed and at least some version -- util:RegistrySearch Id=RegistrySearchProxyHas Variable=ProxyInstalled Root=HKLM Key=SOFTWARE\Meyer Sound\AVDECC Proxy Result=exists / !-- END Conditional Def -- !-- Begin Chain -- Chain !-- Will not install if 4.1.3 or better is installed -- ExePackage Id=WinPcap Name=WinPcap_4_1_3.exe Vital=no Compressed=no DownloadUrl=http://www.winpcap.org/install/bin/WinPcap_4_1_3.exe; InstallCondition=NOT WinPcapInstalled OR ( 4 WinPcapVersionMajor AND 1 WinPcapVersionMinor) RemotePayload Description=WinPcap 4.1.3 installer Hash=e2516fcd1573e70334c8f50bee5241cdfdf48a00 ProductName=WinPcap 4.1.3 Size=915128 Version=4.1.0.2980 / /ExePackage !-- Will not install if 2.0.2.0 or better is installed -- ExePackage Id=BonjourPSSetup Name=BonjourPSSetup.exe Vital=no Compressed=no DownloadUrl=http://support.apple.com/downloads/DL999/en_US/BonjourPSSetup.exe; InstallCondition=NOT BonjourDLL OR v2.0.2.0 BonjourVersion RemotePayload ProductName=BonjourPrintServices Description=Bonjour Printer Services Installer Size=5436744 Version=2.0.2.0 Hash=847f39e0ea80d2a4d902fe59657e18f5bc32a8cb / /ExePackage !-- Will not
Re: [WiX-users] Help on uninstall
Which version of WiX are you using? I'm not EXACTLY sure what you're trying to do, but it sounds like you don't want to allow them to move on to the next dialog until USERNAME has a value in it? Is this the case? Also, don't forget to CC a copy to the wix-users group when you reply please. On 1/24/07, Joseph O'Sullivan [EMAIL PROTECTED] wrote: Levi Sorry to come direct but looks like you know the answer to this from scraps I have read. Here is the code I am using Dialog Id=UserRegistrationDlg Width=370 Height=270 Title=[ProductName] [Setup] NoMinimize=yes Control Id=NameLabel Type=Text X=45 Y=73 Width=100 Height=15 TabSkip=no Text=amp;User Name: / Control Id=NameEdit Type=Edit X=45 Y=85 Width=220 Height=18 Property=USERNAME Text={80} / Control Id=OrganizationLabel Type=Text X=45 Y=110 Width=100 Height=15 TabSkip=no Text=amp;Organization: / Control Id=OrganizationEdit Type=Edit X=45 Y=122 Width=220 Height=18 Property=COMPANYNAME Text={80} / Control Id=CDKeyLabel Type=Text X=45 Y=147 Width=50 Height=10 TabSkip=no TextCD amp;Key:/Text /Control Control Id=CDKeyEdit Type=MaskedEdit X=45 Y=159 Width=250 Height=16 Property=PIDKEY Text=[PIDTemplate] / Control Id=Back Type=PushButton X=180 Y=243 Width=56 Height=17 Text=[ButtonText_Back] Publish Event=NewDialog Value=LicenseAgreementDlg1/Publish /Control Control Id=Next Type=PushButton X=236 Y=243 Width=56 Height=17 Default=yes Text=[ButtonText_Next] Publish Event=ValidateProductID Value=00/Publish Publish Event=SpawnWaitDialog Value=WaitForCostingDlgCostingComplete = 1/Publish Publish Event=NewDialog Value=SetupTypeDlgProductID/Publish /Control Control Id=Cancel Type=PushButton X=304 Y=243 Width=56 Height=17 Cancel=yes Text=[ButtonText_Cancel] Publish Event=SpawnDialog Value=CancelDlg1/Publish /Control Control Id=BannerBitmap Type=Bitmap X=0 Y=0 Width=370 Height=44 TabSkip=no Text=[BannerBitmap] / Control Id=Description Type=Text X=25 Y=23 Width=280 Height=15 Transparent=yes NoPrefix=yes TextPlease enter your customer information/Text /Control Control Id=BottomLine Type=Line X=0 Y=234 Width=370 Height=0 / Control Id=Title Type=Text X=15 Y=6 Width=200 Height=15 Transparent=yes NoPrefix=yes Text[DlgTitleFont]Customer Information/Text /Control Control Id=BannerLine Type=Line X=0 Y=44 Width=370 Height=0 / /Dialog Which is straight from one of the examples, I am trying to get the Username, not from a property to only except numbers and not move on until it has data in it. Any ideas cause I have been on this all day and have now gone bald pulling my hair out J Boy this is fun Thanks Joe *From:* Levi Wilson [mailto:[EMAIL PROTECTED] *Sent:* 24 January 2007 13:28 *To:* Joseph O'Sullivan *Cc:* wix-users@lists.sourceforge.net *Subject:* Re: [WiX-users] Help on uninstall If you want to condition a CA to run on Install, but not uninstall you can just use this for the install: Custom Action=CA1 After=InstallFinalizeNOT Installed/Custom and Custom Action=CA2 After=RemoveExistingProductsInstalled/Custom On the other one I believe. On 1/24/07, *Joseph O'Sullivan* [EMAIL PROTECTED] wrote: I have this piece of code in my MSI Sample A. InstallExecuteSequence Custom Action=SampleCustomAction After=InstallFinalize / RemoveExistingProducts After=SampleCustomAction / Custom Action=MessTestCustomAction After=RemoveExistingProducts /InstallExecuteSequence Sample B. InstallExecuteSequence Custom Action=SampleCustomAction After=InstallFinalize / RemoveExistingProducts After=SampleCustomAction / Custom Action=MessTestCustomAction After=RemoveExistingProducts![CDATA[REMOVE ~ALL]]/Custom /InstallExecuteSequence My thoughts are these the custom actions are to run on install, but not on uninstall. When I have these in the install it installs fine but just says there is an error when I uninstall. Both examples of the code give the same error. I suppose my question is that I am doing this right for the installs to run on just the install, if not how do I do it. Regards Joe __ You might be interested in this... RM has been accredited by BECTa as a Learning Platform Services Supplier. Find out more about Learning Platforms and what they will mean for you in the Guardian's 8 page supplement: http://www.rm.com/generic.asp?cref=GP840211srcurl=ICS120107PT __Visit our Website at http://www.rm.com This message is confidential. You should not copy it or disclose its contents to anyone. You may use and apply the information for the intended purpose only. Internet communications are not secure; therefore, RM does not accept legal
Re: [WiX-users] Help on uninstall
Sorry I should have sent it to the list. What am I trying to do, I have now used a maskededit box with just figures going in. I now have two text boxes and one maskededit box , and what I want to do is make sure that each box is completed, i.e. has been filled in before the user can move on. If the user then moves back he/she can re enter any of the data. Here is the screen Dialog Id=UserRegistrationDlg Width=370 Height=270 Title=[ProductName] [Setup] NoMinimize=yes Control Id=NameLabel Type=Text X=45 Y=73 Width=100 Height=15 TabSkip=no Text=amp;User Name: / Control Id=NameEdit Type=Edit X=45 Y=85 Width=220 Height=18 Property=USERNAME Text={80} / Control Id=OrganizationLabel Type=Text X=45 Y=110 Width=100 Height=15 TabSkip=no Text=amp;Organization: / Control Id=OrganizationEdit Type=Edit X=45 Y=122 Width=220 Height=18 Property=COMPANYNAME Text={80} / Control Id=CDKeyLabel Type=Text X=45 Y=147 Width=50 Height=10 TabSkip=no TextCD amp;Key:/Text /Control Control Id=CDKeyEdit Type=MaskedEdit X=45 Y=159 Width=250 Height=16 Property=PIDKEY Text=[PIDTemplate] / Control Id=Back Type=PushButton X=180 Y=243 Width=56 Height=17 Text=[ButtonText_Back] Publish Event=NewDialog Value=LicenseAgreementDlg1/Publish /Control Control Id=Next Type=PushButton X=236 Y=243 Width=56 Height=17 Default=yes Text=[ButtonText_Next] Publish Event=ValidateProductID Value=00/Publish Publish Event=SpawnWaitDialog Value=WaitForCostingDlgCostingComplete = 1/Publish Publish Event=NewDialog Value=SetupTypeDlgProductID/Publish /Control Control Id=Cancel Type=PushButton X=304 Y=243 Width=56 Height=17 Cancel=yes Text=[ButtonText_Cancel] Publish Event=SpawnDialog Value=CancelDlg1/Publish /Control Control Id=BannerBitmap Type=Bitmap X=0 Y=0 Width=370 Height=44 TabSkip=no Text=[BannerBitmap] / Control Id=Description Type=Text X=25 Y=23 Width=280 Height=15 Transparent=yes NoPrefix=yes TextPlease enter your customer information/Text /Control Control Id=BottomLine Type=Line X=0 Y=234 Width=370 Height=0 / Control Id=Title Type=Text X=15 Y=6 Width=200 Height=15 Transparent=yes NoPrefix=yes Text[DlgTitleFont]Customer Information/Text /Control Control Id=BannerLine Type=Line X=0 Y=44 Width=370 Height=0 / /Dialog I am using version 2.0.4221.0 because I need to release this as soon as possible. I have found the user can just press next without filling in the maskededit box and if the box is filled in then when they go back they can not change it. Any help would be much appreciated. Thanks From: Levi Wilson [mailto:[EMAIL PROTECTED] Sent: 24 January 2007 18:52 To: Joseph O'Sullivan Cc: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] Help on uninstall Which version of WiX are you using? I'm not EXACTLY sure what you're trying to do, but it sounds like you don't want to allow them to move on to the next dialog until USERNAME has a value in it? Is this the case? Also, don't forget to CC a copy to the wix-users group when you reply please. On 1/24/07, Joseph O'Sullivan [EMAIL PROTECTED] wrote: Levi Sorry to come direct but looks like you know the answer to this from scraps I have read. Here is the code I am using Dialog Id=UserRegistrationDlg Width=370 Height=270 Title=[ProductName] [Setup] NoMinimize=yes Control Id=NameLabel Type=Text X=45 Y=73 Width=100 Height=15 TabSkip=no Text=amp;User Name: / Control Id=NameEdit Type=Edit X=45 Y=85 Width=220 Height=18 Property=USERNAME Text={80} / Control Id=OrganizationLabel Type=Text X=45 Y=110 Width=100 Height=15 TabSkip=no Text=amp;Organization: / Control Id=OrganizationEdit Type=Edit X=45 Y=122 Width=220 Height=18 Property=COMPANYNAME Text={80} / Control Id=CDKeyLabel Type=Text X=45 Y=147 Width=50 Height=10 TabSkip=no TextCD amp;Key:/Text /Control Control Id=CDKeyEdit Type=MaskedEdit X=45 Y=159 Width=250 Height=16 Property=PIDKEY Text=[PIDTemplate] / Control Id=Back Type=PushButton X=180 Y=243 Width=56 Height=17 Text=[ButtonText_Back] Publish Event=NewDialog Value=LicenseAgreementDlg1/Publish /Control Control Id=Next Type=PushButton X=236 Y=243 Width=56 Height=17 Default=yes Text=[ButtonText_Next] Publish Event=ValidateProductID Value=00/Publish Publish Event=SpawnWaitDialog Value=WaitForCostingDlgCostingComplete = 1/Publish Publish Event=NewDialog Value=SetupTypeDlgProductID/Publish /Control Control Id=Cancel Type=PushButton X=304 Y=243 Width=56 Height=17 Cancel=yes Text=[ButtonText_Cancel] Publish Event=SpawnDialog Value=CancelDlg1/Publish /Control Control Id=BannerBitmap Type=Bitmap X=0 Y=0 Width=370 Height=44 TabSkip