Sure. In the previous dialog you can usually put Conditions on the Next pushbutton to display any other dialog based upon the Condition set by the Property
<Publish Event="NewDialog" Value="CustomCompleteDialog"><![CDATA[Not Installed AND ISVALIDLOGON = "true" AND (VERSION = ENTREBUILDNUM OR OVERRIDE = "true") AND SQLVERSION >= 9]]></Publish> <Publish Event="NewDialog" Value="SelectionDialog"><![CDATA[MaintenanceMode = "AddRemove" AND ISVALIDLOGON = "true" AND SQLVERSION >= 9]]></Publish> <Publish Event="NewDialog" Value="Reinstall"><![CDATA[MaintenanceMode = "Reinstall" AND ISVALIDLOGON = "true" AND SQLVERSION >= 9]]></Publish> Something like that is one approach, at least. -----Original Message----- From: Kevin Burton [mailto:kev...@buyseasons.com] Sent: Wednesday, February 23, 2011 11:02 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Command line installation? Since I have set default properties I just need to test BEFORE I set the default to make sure some key "required" properties are set and if any of these are set then I could safely avoid the dialog UI and take the defaults for the rest. How do I test for the existence of a property and disable the dialog if true? Kevin Burton Senior Software Engineer BUYSEASONS 262-901-2000 Office 262-901-2312 Fax kev...@buyseasons.com -----Original Message----- From: Chad Petersen [mailto:chad.peter...@harlandfs.com] Sent: Wednesday, February 23, 2011 11:01 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Command line installation? I can offer some help. For the command line you append your PROPERTYNAME followed by an equal sign and then the value you want to assign to that property. Like this. msiexec /L*v c:\log.txt /i my.msi PROPERTYNAME1=value1 PROPERTYNAME2=value2 In my experience it seemed like if you gave it all "required" properties that correspond to your UI then it breezes through without a hitch. But, if you forget a property it either starts popping up dialog boxes for you to fill in or some other behavior, I can't remember which. I'm not sure if you only give it one or two properties that it's going to know what to do for the remainder. A command line that works for my installer is 623 characters long, but it can install in a test environment where all properties are known quantities without any dialogs showing. Really helps with automation. -----Original Message----- From: Kevin Burton [mailto:kev...@buyseasons.com] Sent: Wednesday, February 23, 2011 7:08 AM To: General discussion for Windows Installer XML toolset. Subject: [WiX-users] Command line installation? I would like to know what strategies are best to use if I optionally don't want a UI. Right now I have a custom dialog that appears and it sets a number of properties. If any of these properties are set on the command line I would like to skip the dialog. That is one question. The second question is how do I set the properties on the command line? If it helps the dialog is defined as <?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Fragment> <UI> <Property Id="FULLYQUALIFIEDCOMPUTERNAME" Hidden="yes">devbrain03</Property> <Property Id="SERVICEUSER" Hidden="yes">user</Property> <Property Id="SERVICEPASSWORD" Hidden="yes">testing</Property> <Property Id="SQLSERVER" Hidden="yes">computer</Property> <Property Id="TRANSACTIONSSQLSERVER" Hidden="yes">computer</Property> <Property Id="REPLICATEDTRANSACTIONSERVER" Hidden="yes">computer</Property> <Property Id="INVENTORYSERVER" Hidden="yes">computer</Property> <Property Id="SHIPPINGSERVER" Hidden="yes">computer</Property> <Property Id="COMMERCESERVERSITENAME" Hidden="yes">site</Property> <Property Id="SMTPSERVERNAME" Hidden="yes">mail.company.com</Property> <Property Id="LYRISSQLSERVER" Hidden="yes">server</Property> <Property Id="LYRISUSER" Hidden="yes">user</Property> <Property Id="LYRISPASSWORD" Hidden="yes">testing</Property> <Property Id="CYBERSOURCEURL" Hidden="yes">https://myco.ic3.com/ </Property> <Dialog Id="PropertiesDlg" Width="290" Height="390" Title="[ProductName] [ProductVersion] $(var.Configuration)" NoMinimize="yes"> <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="Ready to Install" /> <Control Id="ComputerNameLabel" Type="Text" X="15" Y="26" Width="80" Height="15" Transparent="yes" NoPrefix="yes" Text="Computer Name" /> <Control Id="ComputerNameEdit" Type="Edit" X="114" Y="22" Width="150" Height="18" Property="FULLYQUALIFIEDCOMPUTERNAME" /> <Control Id="UserLabel" Type="Text" X="15" Y="46" Width="80" Height="15" Transparent="yes" NoPrefix="yes" Text="User" /> <Control Id="UserEdit" Type="Edit" X="114" Y="42" Width="150" Height="18" Property="SERVICEUSER" /> <Control Id="PasswordLabel" Type="Text" X="15" Y="66" Width="80" Height="15" Transparent="yes" NoPrefix="yes" Text="Password" /> <Control Id="PasswordEdit" Type="Edit" X="114" Y="62" Width="150" Height="18" Property="SERVICEPASSWORD" Password="yes" /> <Control Id="SqlServerLabel" Type="Text" X="15" Y="86" Width="100" Height="15" Transparent="yes" NoPrefix="yes" Text="BuySeasons Sql Server" /> <Control Id="SqlServerEdit" Type="Edit" X="114" Y="82" Width="150" Height="18" Property="SQLSERVER" /> <Control Id="TransactionsSqlServerLabel" Type="Text" X="15" Y="106" Width="100" Height="15" Transparent="yes" NoPrefix="yes" Text="Transactions Sql Server" /> <Control Id="TransactionsSqlServerEdit" Type="Edit" X="114" Y="102" Width="150" Height="18" Property="TRANSACTIONSSQLSERVER" /> <Control Id="ShippingSqlServerLabel" Type="Text" X="15" Y="126" Width="100" Height="15" Transparent="yes" NoPrefix="yes" Text="Shipping Sql Server" /> <Control Id="ShippingSqlServerEdit" Type="Edit" X="114" Y="122" Width="150" Height="18" Property="SHIPPINGSERVER" /> <Control Id="ReplicatedTransactionsSqlServerLabel" Type="Text" X="15" Y="146" Width="100" Height="15" Transparent="yes" NoPrefix="yes" Text="Replicated Sql Server" /> <Control Id="ReplicatedTransactionsSqlServerEdit" Type="Edit" X="114" Y="142" Width="150" Height="18" Property="REPLICATEDTRANSACTIONSERVER" /> <Control Id="InventoryServerLabel" Type="Text" X="15" Y="166" Width="100" Height="15" Transparent="yes" NoPrefix="yes" Text="Inventory Server" /> <Control Id="InventoryServerEdit" Type="Edit" X="114" Y="162" Width="150" Height="18" Property="INVENTORYSERVER" /> <Control Id="LyrisDatabaseSqlServerLabel" Type="Text" X="15" Y="186" Width="100" Height="15" Transparent="yes" NoPrefix="yes" Text="Lyris Sql Server" /> <Control Id="LyrisDatabaseSqlServerEdit" Type="Edit" X="114" Y="182" Width="150" Height="18" Property="LYRISSQLSERVER" /> <Control Id="LyrisDatabaseUserLabel" Type="Text" X="15" Y="206" Width="100" Height="15" Transparent="yes" NoPrefix="yes" Text="Lyris User Name" /> <Control Id="LyrisDatabaseUserEdit" Type="Edit" X="114" Y="202" Width="150" Height="18" Property="LYRISUSER" /> <Control Id="LyrisDatabasePasswordLabel" Type="Text" X="15" Y="226" Width="100" Height="15" Transparent="yes" NoPrefix="yes" Text="Lyris Password" /> <Control Id="LyrisDatabasePasswordEdit" Type="Edit" X="114" Y="222" Width="150" Height="18" Property="LYRISPASSWORD" Password="yes" /> <Control Id="SiteNameLabel" Type="Text" X="15" Y="286" Width="80" Height="15" Transparent="yes" NoPrefix="yes" Text="Site Name" /> <Control Id="SiteNameEdit" Type="Edit" X="114" Y="282" Width="150" Height="18" Property="COMMERCESERVERSITENAME" /> <Control Id="SmtpServerNameLabel" Type="Text" X="15" Y="306" Width="80" Height="15" Transparent="yes" NoPrefix="yes" Text="SMTP Server" /> <Control Id="SmtpServerNameEdit" Type="Edit" X="114" Y="302" Width="150" Height="18" Property="SMTPSERVERNAME" /> <Control Id="CyberSourceURLLabel" Type="Text" X="15" Y="326" Width="80" Height="15" Transparent="yes" NoPrefix="yes" Text="CyberSource URL" /> <Control Id="CyberSourceURLEdit" Type="Edit" X="114" Y="322" Width="150" Height="18" Property="CYBERSOURCEURL" /> <Control Id="OK" Type="PushButton" X="104" Y="352" Width="56" Height="17" Default="yes" Text="OK"> <Publish Event="EndDialog" Value="Return"/> </Control> <Control Id="Cancel" Type="PushButton" X="164" Y="352" Width="56" Height="17" Cancel="yes" Text="Cancel"> <Publish Event="EndDialog" Value="Exit"/> </Control> </Dialog> <AdminUISequence /> <InstallUISequence /> </UI> </Fragment> </Wix> Kevin Burton Senior Software Engineer BUYSEASONS 262-901-2000 Office 262-901-2312 Fax kev...@buyseasons.com -----Original Message----- From: Rob Mensching [mailto:r...@robmensching.com] Sent: Wednesday, February 16, 2011 9:40 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Conditionally invoking ServiceInstall Element I don't think more disk space should be consumed if things are cabbed and the service executable is identical in the two Components (one Conditioned, the other not) because only one will ever get installed on the machine (due to mutually exclusive Conditions) and smart-cabbing should make sure only one file is in the cabinet. (wow, that's one sentence <smile/>). On Mon, Feb 14, 2011 at 8:50 AM, Christopher Painter < chr...@deploymentengineering.com> wrote: > Technically it's a violation of the component rules. However, if you can > make > sure that the two components ( whether they be in two merge modules or > no merge modules ) have mutually exclusive component conditions so > that only one will > ever be installed you can pretty much get away with it. You will still > get > validation errors as part of the build though I believe. I've done > this in the past and my main complaint about it is it doesn't scale > well. > > > If dev doesn't want to redo the app, what would be the effect of > taking consoleappservice.exe and copying / renaming it to have two files: > > consoleapp.exe > service.exe > > It's a confusing hack and you'll eat up more disk space then if you > factored it > out into the shared.dll but you should be able to still do everything I > mentioned previously. If this is .NET code it might not be happy but you > could > give it a try. > > Personally if it is a .NET service, I can't imagine it taking more > then a few hours to factor out, build and test. > > --- > 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 > > > > ----- Original Message ---- > From: Gregg Swanson <gregg.swan...@microsoft.com> > To: General discussion for Windows Installer XML toolset. > <wix-users@lists.sourceforge.net> > Sent: Mon, February 14, 2011 10:38:26 AM > Subject: Re: [WiX-users] Conditionally invoking ServiceInstall Element > > Thanks for the help... > > I am a WIX rooky. > > Is this is a valid option - > > Package the consleappservice.exe in two separate merge modules, the > first doesn't invoke ServiceInstall the second does invoke ServiceInstall? > > The application that I am helping will have to refactor code and they > may be reluctant to do so at this point in time. > > Thanks, > Gregg > > > -----Original Message----- > From: Christopher Painter [mailto:chr...@deploymentengineering.com] > Sent: Monday, February 14, 2011 10:14 AM > To: General discussion for Windows Installer XML toolset. > Subject: Re: [WiX-users] Conditionally invoking ServiceInstall Element > > The ServiceControl element is a child of the Component which is a > child of the Feature element so the condition can be applied at the > Feature or Component level. If the component is installed the service > will be installed and there's no way around that except to factor your > service out of the console app: > > consleappservice.exe -> consoleapp.exe, service.exe, shared.dll > > Then you can put have Feature A reference the consoleapp.exe and > shared.dll components and Feature B referene service.exe and > shared.dll components. ( > Note: There is only 1 shared.dll component ) > > If feature B is installed you will get a service. If feature B is not > installed you will not get a service but you can still have your > console app if feature A is installed. > > >From a SysAdmin's point of view it's silent installs can be: > > msiexec /i foo.msi ADDLOCAL=A /qn or > msiexec /i foo.msi ADDLOCAL=A,B /qn > > If the service was not previously installed and now desired they can > issue the > command: > > msiexec /i foo.msi ADDLOCAL=B /qn > > If the service was previously installed and no longer desired they can > issue the command > > msiexec /i foo.msi REMOVE=B /qn > > If they want to uninstall all together they can say: > > msiexec /x foo.msi /qn or > msiexec /i foo.msi REMOVE=ALL /qn > > > --- > 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 > > > > ----- Original Message ---- > From: Gregg Swanson <gregg.swan...@microsoft.com> > To: "wix-users@lists.sourceforge.net" > <wix-users@lists.sourceforge.net> > Sent: Mon, February 14, 2011 9:48:47 AM > Subject: [WiX-users] Conditionally invoking ServiceInstall Element > > Hello, > > I have a Console application that may also be used as a Windows > Service. Is it possible to conditionally invoke or not invoke the > ServiceInstall element to control when the service is installed? > > > Thanks, > Gregg > > ------------------------------------------------------------------------ ------ > The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: > Pinpoint memory and threading errors before they happen. > Find and fix more than 250 security defects in the development cycle. > Locate bottlenecks in serial and parallel code that limit performance. > http://p.sf.net/sfu/intel-dev2devfeb > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > ------------------------------------------------------------------------ ------ > The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: > Pinpoint memory and threading errors before they happen. > Find and fix more than 250 security defects in the development cycle. > Locate bottlenecks in serial and parallel code that limit performance. > http://p.sf.net/sfu/intel-dev2devfeb > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > ------------------------------------------------------------------------ ------ > The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: > Pinpoint memory and threading errors before they happen. > Find and fix more than 250 security defects in the development cycle. > Locate bottlenecks in serial and parallel code that limit performance. > http://p.sf.net/sfu/intel-dev2devfeb > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > ------------------------------------------------------------------------ ------ > The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: > Pinpoint memory and threading errors before they happen. > Find and fix more than 250 security defects in the development cycle. > Locate bottlenecks in serial and parallel code that limit performance. > http://p.sf.net/sfu/intel-dev2devfeb > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > > -- virtually, Rob Mensching - http://RobMensching.com LLC ------------------------------------------------------------------------ ------ The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------ ------ Free Software Download: Index, Search & Analyze Logs and other IT data in Real-Time with Splunk. Collect, index and harness all the fast moving IT data generated by your applications, servers and devices whether physical, virtual or in the cloud. Deliver compliance at lower cost and gain new business insights. http://p.sf.net/sfu/splunk-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------ ------ Free Software Download: Index, Search & Analyze Logs and other IT data in Real-Time with Splunk. Collect, index and harness all the fast moving IT data generated by your applications, servers and devices whether physical, virtual or in the cloud. Deliver compliance at lower cost and gain new business insights. http://p.sf.net/sfu/splunk-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------ ------ Free Software Download: Index, Search & Analyze Logs and other IT data in Real-Time with Splunk. Collect, index and harness all the fast moving IT data generated by your applications, servers and devices whether physical, virtual or in the cloud. Deliver compliance at lower cost and gain new business insights. http://p.sf.net/sfu/splunk-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Free Software Download: Index, Search & Analyze Logs and other IT data in Real-Time with Splunk. Collect, index and harness all the fast moving IT data generated by your applications, servers and devices whether physical, virtual or in the cloud. Deliver compliance at lower cost and gain new business insights. http://p.sf.net/sfu/splunk-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users