In my bootstrapper I have this:
<Chain>
<ExePackage Id="SQLExpressx86"
DisplayName="Microsoft(r) SQL Server(r) 2012 - Express
Edition x86"
SourceFile="..\..\PreReqs\SQLEXPR_x86_ENU.exe"
InstallCommand="/ACTION=install"
InstallCondition="(Not SQLServer2008Installed AND Not
SQLServer2008x64Installed AND Not SQLServer2012Installed AND Not
SQLServer2012x64Installed AND Not SQLServerExpressInstalled AND Not
SQLServerExpressx64Installed) AND Not VersionNT64"
Permanent="yes"/>
<ExePackage Id="SQLExpressx64"
DisplayName="Microsoft(r) SQL Server(r) 2012 - Express
Edition x64"
SourceFile="..\..\PreReqs\SQLEXPR_x64_ENU.exe"
InstallCommand="/ACTION=install"
InstallCondition="(Not SQLServer2008Installed AND Not
SQLServer2008x64Installed AND Not SQLServer2012Installed AND Not
SQLServer2012x64Installed AND Not SQLServerExpressInstalled AND Not
SQLServerExpressx64Installed) AND VersionNT64"
Permanent="yes"/>
<Fragment Id="InstallConditionChecks">
<!-- Check for SQL Server Express -->
<util:RegistrySearch
Id="SQLServerExpressSearch"
Key="SOFTWARE\Microsoft\Microsoft Sql
Server\SQLEXPRESS\MSSQLServer\CurrentVersion"
Value="CurrentVersion"
Root="HKLM"
Result="value"
Variable="SQLServerExpressInstalled"/>
<util:RegistrySearch
Id="SQLServerExpressx64Search"
Key="SOFTWARE\Microsoft\Microsoft Sql
Server\SQLEXPRESS\MSSQLServer\CurrentVersion"
Value="CurrentVersion"
Root="HKLM"
Result="value"
Win64="yes"
Variable="SQLServerExpressx64Installed"/>
<!-- Check for Microsoft SQL Server 2008 -->
<util:RegistrySearch
Id="SQLServer2008Search"
Key="SOFTWARE\Microsoft\Microsoft Sql
Server\MSSQL10_50.MSSQLSERVER\MSSQLServer\CurrentVersion"
Value="CurrentVersion"
Root="HKLM"
Result="value"
Variable="SQLServer2008Installed"/>
<util:RegistrySearch
Id="SQLServer2008x64Search"
Key="SOFTWARE\Microsoft\Microsoft Sql
Server\MSSQL10_50.MSSQLSERVER\MSSQLServer\CurrentVersion"
Value="CurrentVersion"
Root="HKLM"
Result="value"
Win64="yes"
Variable="SQLServer2008x64Installed"/>
<!-- Check for Microsoft SQL Server 2012 -->
<util:RegistrySearch
Id="SQLServer2012Search"
Key="SOFTWARE\Microsoft\Microsoft Sql
Server\MSSQL11.MSSQLSERVER\MSSQLServer\CurrentVersion"
Value="CurrentVersion"
Root="HKLM"
Result="value"
Variable="SQLServer2012Installed"/>
<util:RegistrySearch
Id="SQLServer2012x64Search"
Key="SOFTWARE\Microsoft\Microsoft Sql
Server\MSSQL11.MSSQLSERVER\MSSQLServer\CurrentVersion"
Value="CurrentVersion"
Root="HKLM"
Result="value"
Win64="yes"
Variable="SQLServer2012x64Installed"/>
-----Original Message-----
From: Chad McCune [mailto:[email protected]]
Sent: November-14-12 10:59 AM
To: [email protected]
Subject: [WiX-users] Help?
I'm new to WiX, started playing with it last week.
Our current software installer works, but has issues. We are going to be
moving to VS2012 soon, and the MS Setup Project is no longer available, so I
was going to take this opportunity to update and improve it.
Scenario: Like most software, we have pre-requisites. We require .NET
Framework for one. We currently also depend on a SQL Server Express instance
to be installed and configured. We're also investingating using the new
SqlLocalDB option from 2012 for users using a supported OS.
I've got my basic installer created (product.wxs) and it checks for the
prerequisite of .NET. This basic MSI works fine.
I've got a basic Bootstrapper project setup that will install .NET and then my
MSI. This basic bootsrapper works fine.
Where I've ran into a huge roadblock, is how to conditionally install SQL.
I only want to install SQL if the instance is not already installed, or for
some reason, the service won't start (ie. the user ran the desktop cleanup
wizard that compressed their program files). This is also where I'm trying to
decide between using SQL Express and SQLLocalDB.
To do this, do I have to create a custom BA? Can I use a wix extension instead?
I've tried both, but I think the extension was not the right way to go.
However, screwing around with the BA, I can get it to compile and my BA
starts, but it just seems to hang.
public class CustomBA : BootstrapperApplication
{
protected override void Run()
{
this.Engine.Log( LogLevel.Verbose, "Running the CustomBA."
);
Threading.Dispatcher.Run();
MessageBox.Show( "Dispatcher Run has finished." );
this.Engine.Quit( 0 );
}
}
I see the entry "Running the CustomBA" in my log file, but nothing else after
that.
What all do I have to do to create my own BA? Do I have to completely recreate
the entire UI experience?
Short version, I just want to create some custom conditionals that I can use in
my "DetectCondition" attribute, ie. <ExePackage blablabla
DetectCondition="IDONTHAVESQL" />. What is the "best" way to accomplish this.
Please Help! J
------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single web
console. Get in-depth insight into apps, servers, databases, vmware, SAP, cloud
infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users
------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users