Running SQL Script file through Wix using <sql:SqlScript> element - sql-server

I am new to Wix Installer. I have a requirement where I have to provide credentials for SQL Server login and run a script from a specific path.
I am not getting what's going wrong.The project is build successfully and .msi is created. After running it I get the following Error:
Error 26204. Error -2147217900: failed to execute SQL string, error detail: Incorrect syntax near '»'., SQL key: CreateUpsizingDatabase SQL string: print convert(varchar(25),GetDate(),121) + ' Executing file: SqlTest.sql'
My Sql Script File is as below:
print convert(varchar(25),GetDate(),121) + ' Executing file: SqlTest.sql'
Below is My code:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
xmlns:sql="http://schemas.microsoft.com/wix/SqlExtension">
<Product Id="*" Name="SqlTest" Language="1033" Version="1.0.0.0" Manufacturer="BLRSCCMCAS01" UpgradeCode="0931a445-07bf-4494-b130-a1f96155021f">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
<Feature Id="ProductFeature" Title="SqlTest" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
<Binary Id="CreateUpsizingDatabase" SourceFile="C:\Temp\SqlTest.sql" />
<util:User Id="SQLUser" Name="[User]" Password="[Password]" />
<sql:SqlDatabase Id="SqlDatabase" Database="[MyDb]" Server="[Server]" User="SQLUser" />
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="SqlTest" />
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="SqlComponent" Guid="15CCE46E-8EA5-42CA-80C5-AC3DB30A9716">
<sql:SqlScript Id="CreateDatabases" SqlDb="SqlDatabase" ExecuteOnInstall="yes" BinaryKey="CreateUpsizingDatabase" />
<CreateFolder/>
</Component>
</ComponentGroup>
</Fragment>
</Wix>

It looks like you have a UTF8 BOM () in there. Try saving the file as "Unicode (UTF8 Without signature)" using the advanced save options in visual studio.

I got the same error, UTF8 with or without signature both failed.
I think the chars in our script string cause the problem (in my case, I included some chinese chars).
I tried to re-generated sql script from sql server, and save this file in ANSI format. It works!
And i did some query, the chinese chars are correct in sql server.
an article you might want to refer: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Error-executing-sql-scripts-with-WIX-td1488703.html

Related

log4net log file not being written when the app is deployed

I have a WPF app that uses log4net. When I run it in Visual Studio, the log file is created in the Debug or Release folder as expected.
However, when I create an installer and run the installed app, the log file is not created. I added the following lines to the code...
string logFilePath = ((Hierarchy)LogManager.GetRepository())
.Root.Appenders.OfType<FileAppender>()
.FirstOrDefault()?.File;
using (StreamWriter sw = new StreamWriter(#"d:\log.log")) {
sw.WriteLine("Log file: " + logFilePath);
}
...to enable me to check that the log file was being written in the location I expected. It showed me that the log file was supposed to be written to C:\Program Files (x86)\Physio Diary\PhysioDiaryClient.log which is what I expected.
However, the file doesn't exist. Any idea why?
Here is the top of the App.config file...
<?xml version="1.0"
encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net" />
</configSections>
<log4net>
<appender name="RollingFileAppender"
type="log4net.Appender.RollingFileAppender">
<param name="File"
value="PhysioDiaryClient.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="2" />
<maximumFileSize value="1MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-7level %logger - %message%newline%exception" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFileAppender" />
</root>
</log4net>
The bottom of the file looks like this...
<startup>
<supportedRuntime version="v4.0"
sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>
The bits in between are all to do with the WCF services that the app uses.
Anyone any ideas?
Edit: As a test, I tried hard-coding the log file path in App.config to my D: drive (so it's hard-coded, and no question of a permissions issue), but the file still wasn't created.
Thanks to #dymanoid for pointing me in the right direction. The log4net docs are a bit weak in this area, but I found this answer that pointed out that you can use normal environment variables in the config file.
With the aid of this list of environment variables, I ended up with the following...
<param name="File"
value="${LOCALAPPDATA}\Physio Diary\PhysioDiaryClient.log" />
This correctly write the file to C:\Users\MyUsername\AppData\Local\Physio Diary\PhysioDiaryClient.log
Hope this helps someone.

Win 32 application is not launching in Win 64 bit OS

In application there is no separate dependencies for 32 or 64 bit. It's a common WPF application and i'm not using any third party .dll. If i pull the release folder files and run in it on Win 8.1 64 bit it's working.
When i tried to run the application after the installation,the application is not launching , no error message and even i tried to launch it from command prompt..no error message.
I'm using Wix 3.8 to make the installer.
Here are the steps what i did so for:
VS 2012 Configuration manager:
Debug:
Release:
PrintUtility is the exe of the applicaiton.
PrintUtilityExe is the BootStrapper of WIX.
SetupProjectInstaller is the .msi installer of WIX.
When i made the installer through WIX: SetupProjectInstaller.msiand installed it on Win 64 bit 8.1, the application is not launching.
Here is the wix code: Product.wxs
<?xml version="1.0"?>
<?define ProductVersion = "1.0.0.0"?>
<?define ProductUpgradeCode = "9fe100b5-8486-46c4-b3ab-15da1931ba4d"?>
<?define SourceDir = "C:\Users\krangaraj\Documents\Visual Studio 2012\Projects\TestPrintUtility\TestPrintUtility\bin\x86\Release" ?>
<?define SourceDirImages = "C:\Users\krangaraj\Documents\Visual Studio 2012\Projects\TestPrintUtility\TestPrintUtility\bin\x86\Release\Res" ?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" UpgradeCode="$(var.ProductUpgradeCode)"
Name="TestPrint Utility" Version="$(var.ProductVersion)" Manufacturer="TTT" Language="1033" >
<Package InstallerVersion="200" Compressed="yes" Comments="Windows Installer Package" InstallScope="perMachine"/>
<Media Id="1" Cabinet="TestPrintUtility.cab" EmbedCab="yes"/>
<Icon Id="ProductIcon" SourceFile="TestPrintInstaller.ico"/>
<Icon Id="TestPrintInstaller.ico" SourceFile="TestPrintInstaller.ico"/>
<Property Id="ARPPRODUCTICON" Value="TestPrintInstaller.ico" />
<Upgrade Id="$(var.ProductUpgradeCode)">
<UpgradeVersion Minimum="$(var.ProductVersion)" OnlyDetect="yes" Property="NEWERVERSIONDETECTED"/>
<UpgradeVersion Minimum="0.0.0" Maximum="$(var.ProductVersion)" IncludeMinimum="yes" IncludeMaximum="no"
Property="OLDERVERSIONBEINGUPGRADED"/>
</Upgrade>
<Condition Message="A newer version of this software is already installed.">NOT NEWERVERSIONDETECTED</Condition>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLDIR" Name="TestPrint Utility">
<Component Id="TestPrintUtility" Guid="{47D7C69E-81C2-4FD6-B77B-790FBF5F7B39}">
<File Id="TestPrintUtility.exe" Source="$(var.SourceDir)\TestPrintUtility.exe" KeyPath="yes" Checksum="yes"/>
</Component>
<Component Id="bGround.png" Guid="{64AE1DAD-2502-4171-AF80-A153D59D8996}">
<File Id="bGround.png" Source="$(var.SourceDir)\bGround.png" KeyPath="yes" Checksum="yes"/>
</Component>
<Component Id="cspstat.dll" Guid="{69CAD367-A9D1-46E7-B8BA-CF839D034175}">
<File Id="cspstat.dll" Source="$(var.SourceDir)\cspstat.dll" KeyPath="yes" Checksum="yes"/>
</Component>
<Component Id="TTT.I18N.dll" Guid="{B20D2708-0422-4617-815F-C9143A75833F}">
<File Id="TTT.I18N.dll" Source="$(var.SourceDir)\TTT.I18N.dll" KeyPath="yes" Checksum="yes"/>
</Component>
<Component Id="TTTDongleManage.dll" Guid="{B4A38CE6-C34E-4391-9DCA-A142DB3BCA66}">
<File Id="TTTDongleManage.dll" Source="$(var.SourceDir)\TTTDongleManage.dll" KeyPath="yes" Checksum="yes"/>
</Component>
<Component Id="HtmlAgilityPack.dll" Guid="{D63578BD-902A-4899-A0BF-C82146117B03}">
<File Id="HtmlAgilityPack.dll" Source="$(var.SourceDir)\HtmlAgilityPack.dll" KeyPath="yes" Checksum="yes"/>
</Component>
<Component Id="HtmlAgilityPack.pdb" Guid="{8CD7A15D-C92E-4F41-A097-8A06CFB01774}">
<File Id="HtmlAgilityPack.pdb" Source="$(var.SourceDir)\HtmlAgilityPack.pdb" KeyPath="yes" Checksum="yes"/>
</Component>
<Component Id="HtmlAgilityPack.xml" Guid="{95B2ABCB-3E8C-4824-850C-7C3D29FB814D}">
<File Id="HtmlAgilityPack.xml" Source="$(var.SourceDir)\HtmlAgilityPack.xml" KeyPath="yes" Checksum="yes"/>
</Component>
<Component Id="KGDLLV10.dll" Guid="{AB144098-3E3E-42AD-94A4-ED8F40E93915}">
<File Id="KGDLLV10.dll" Source="$(var.SourceDir)\KGDLLV10.dll" KeyPath="yes" Checksum="yes"/>
</Component>
<Component Id="Microsoft.Expression.Interactions.dll" Guid="{1EEF5A4C-B0AF-4528-8F57-80A8A62743EB}">
<File Id="Microsoft.Expression.Interactions.dll" Source="$(var.SourceDir)\Microsoft.Expression.Interactions.dll" KeyPath="yes" Checksum="yes"/>
</Component>
<Component Id="Microsoft.Expression.Interactions.xml" Guid="{8D772282-693B-4B4F-8D50-BC0A74F694E1}">
<File Id="Microsoft.Expression.Interactions.xml" Source="$(var.SourceDir)\Microsoft.Expression.Interactions.xml" KeyPath="yes" Checksum="yes"/>
</Component>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="ProgramMenuSubfolder" Name="TestPrint Utility">
<Component Id="ApplicationShortcuts" Guid="12345678-1234-1234-1234-333333333333">
<Shortcut Id="ApplicationShortcut1" Name="TestPrint Utility" Description="TestPrint Utility"
Target="[INSTALLDIR]TestPrintUtility.exe" WorkingDirectory="INSTALLDIR"/>
<RegistryValue Root="HKCU" Key="Software\TTT PIE\TestPrintUtility"
Name="installed" Type="integer" Value="1" KeyPath="yes"/>
<RemoveFolder Id="ProgramMenuSubfolder" On="uninstall"/>
</Component>
</Directory>
</Directory>
<Directory Id="DesktopFolder" Name="Desktop">
<Component Id="ApplicationShortcutDesktop" Guid="{C80E4373-F31A-4A2E-90A5-F3E2EFD149AA}">
<Shortcut Id="ApplicationDesktopShortcut"
Name="TestPrint Utility"
Description="TestPrint Utility"
Target="[INSTALLDIR]TestPrintUtility.exe"
WorkingDirectory="INSTALLDIR"/>
<RemoveFolder Id="DesktopFolder" On="uninstall"/>
<RegistryValue
Root="HKCU"
Key="Software/MyAppName"
Name="installed"
Type="integer"
Value="1"
KeyPath="yes"/>
</Component>
</Directory>
</Directory>
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallValidate"/>
</InstallExecuteSequence>
<Feature Id="DefaultFeature" Level="1">
<ComponentRef Id="TestPrintUtility"/>
<ComponentRef Id="bGround.png"/>
<ComponentRef Id="cspstat.dll"/>
<ComponentRef Id="TTT.I18N.dll"/>
<ComponentRef Id="TTTDongleManage.dll"/>
<ComponentRef Id="HtmlAgilityPack.dll"/>
<ComponentRef Id="HtmlAgilityPack.pdb"/>
<ComponentRef Id="HtmlAgilityPack.xml"/>
<ComponentRef Id="KGDLLV10.dll"/>
<ComponentRef Id="Microsoft.Expression.Interactions.dll"/>
<ComponentRef Id="Microsoft.Expression.Interactions.xml"/>
</Feature>
</Product>
</Wix>
Note: To minimize it i removed some part of comportment code from the above lines
Then i used this final piece code to make the final .msi:
set WIX_BIN=C:\Program Files\WiX Toolset v3.8\bin\
echo Wix Toolset Bin Path: %WIX_BIN%
"%WIX_BIN%candle.exe" Product.wxs -ext WixUtilExtension
if exist Product.wixobj ("%WIX_BIN%light.exe" -out Product.msi Product.wixobj -ext WixUIExtension -ext WixUtilExtension)
Here is the SetupProjectInstaller.wixproj code:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>3.8</ProductVersion>
<ProjectGuid>f5d8db53-64db-41d7-9cf9-fb9a151fd45b</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion>
<OutputName>SetupProjectInstaller</OutputName>
<OutputType>Package</OutputType>
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup>
<ItemGroup>
<Compile Include="Product.wxs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Utility\.Design\.Design.csproj">
<Name>.Design</Name>
<Project>{58a00d29-5dc5-4b9e-a18d-6fe6d1f0c1cf}</Project>
<Private>True</Private>
<DoNotHarvest>True</DoNotHarvest>
<RefProjectOutputGroups>Binaries;Content;Satellites</RefProjectOutputGroups>
<RefTargetDir>INSTALLFOLDER</RefTargetDir>
</ProjectReference>
<ProjectReference Include="..\Utility\Utility.csproj">
<Name>Utility</Name>
<Project>{7316ff68-d2ba-4b9a-8d92-15e93ac7bc4e}</Project>
<Private>True</Private>
<DoNotHarvest>True</DoNotHarvest>
<RefProjectOutputGroups>Binaries;Content;Satellites</RefProjectOutputGroups>
<RefTargetDir>INSTALLFOLDER</RefTargetDir>
</ProjectReference>
<ProjectReference Include="..\Utility\WPFSpark\WPFSpark.csproj">
<Name>WPFSpark</Name>
<Project>{98be1309-ceb4-45ee-b4ad-28baf0570fab}</Project>
<Private>True</Private>
<DoNotHarvest>True</DoNotHarvest>
<RefProjectOutputGroups>Binaries;Content;Satellites</RefProjectOutputGroups>
<RefTargetDir>INSTALLFOLDER</RefTargetDir>
</ProjectReference>
</ItemGroup>
<Import Project="$(WixTargetsPath)" />
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Wix.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
Please help me that how can i make it work on Win 64 bit OS. Thank you very much.
SS:
![enter image description here][3]
![enter image description here][4]
![enter image description here][5]
Edit:
Finally i moved my project to VS2012 on Windows 8 OS 64 bit. When i launch the project in VS & it's working fine.
In my understanding i'm making some mistake in Configuration side and also in WIX side. Any help guys???
Note: The application can be installed on Win 32 without any problem.
When you create a 32-bit MSI (compiled as x86) and then try to install it on a 64-bit OS, the registry entries will get written to the WOW64 hive (HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft). The 64-bit version of Windows looks in the 64-bit registry hive and not the WOW64 registry hive when looking for custom registry entries. In your WIX script I see that there are couple of registry entries which gets set, that might be going to the WOW64 hive and that could be the possible reason why your application is not running properly. One solution is to build the MSI in both x86 and x64, if it finally gets deployed to 32 and 64 bit OS.

Silverlight Webpart: Error occurred in deployment step 'Activate Features' because of autognerated code

I'm developing multiple Silverlight-Webparts in a single Solution in VisualStudio 2012 for SharePoint 2010.
Sometimes this error occurs in {Project1}:
Error occurred in deployment step 'Activate Features':
Failed to instantiate file "SiteAssets/{Project1Folder}/$SilverlightXapFile$"
from module "Designer": Source path "Features\{Project1Folder}\{otherProject}.xap" not found.
Elements.xml
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/" >
<Module Name="{Module}" List="113" Url="_catalogs/wp">
<File Path="{Module}\{Webpart}.webpart" Url="{ProjectWebpart}.webpart" Type="GhostableInLibrary">
<Property Name="Group" Value="{Company}" />
</File>
</Module>
<Module Name="{Project}">
<File Path="{Project}\{Project1}.xap" Url="SiteAssets/{Project1Folder}/{Project1}.xap" />
<File Path="{Project}\{otherProject}.xap" Url="SiteAssets/{Project1Folder}/$SilverlightXapFile$" />
</Module>
</Elements>
Thanks to Subversion: I know Visual Studio added a line to Elements.xml of the {Project1} Webpart.
<File Path="{Project}\{otherProject}.xap" Url="SiteAssets/{Project1Folder}/$SilverlightXapFile$" />
When I delete this new line, it will work again.
My question:
How do I prevent VisualStudio from adding "wrong" references in Elements.xml to other Silverlight-Projects in the same solution?

Wix: how to create database using SqlScript

I need to create a simple database named MyDB by using Wix by using SqlString. Below is my code snippet. For the line (SQL="CREATE DATABASE MyDB"), may i know is this correct and will it create 'MyDB' database? I've set the User and Server attribute correctly. However, this allows installation but it does not create the database. Can anyone point out what is wrong or missing?
<sql:SqlDatabase Id='SqlDatabase' Database='master' User='SQLUser' Server='[SQLSERVER]'
CreateOnInstall='no' DropOnUninstall='no' ContinueOnError='yes'>
<sql:SqlString Id="InitialCreateDB" ExecuteOnInstall="no" ContinueOnError="yes"
SQL="CREATE DATABASE MyDB"/>
</sql:SqlDatabase>
Thanks in advance.
Why don't you have a script file containing SQL code to create the database.
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
xmlns:sql="http://schemas.microsoft.com/wix/SqlExtension">
<Product Name='SQL app 1.0' Id='DB501C18-86C7-4D14-AEC0-86416A69ABDE' Language='1033' Codepage='1252'
Version='1.0.0' Manufacturer='ABC Ltd.'>
<Package Id='????????-????-????-????-????????????' Keywords='Installer' Description="SQL App 1.0 Installer"
Comments='Comment.' Manufacturer='ABC Ltd.' InstallerVersion='100'
Languages='1033' Compressed='yes' SummaryCodepage='1252' />
<Media Id='1' Cabinet='Sample.cab' EmbedCab='yes' />
<User Id="MySQLUser" Name="[SQLUSER]" Password="[SQLUSERPASSWORD]"></User>
<Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id='ProgramFilesFolder' Name='PFiles'>
<Directory Id='INSTALLDIR' Name='TestSQL'>
<Component Id="MySqlComponent" Guid="C50999A0-02FD-42d5-9F65-7375318DD328">
<SqlDatabase Id="MySqlDatabase" Database="MyDatabase" Server="[SQLSERVER]" Instance="[SQLINSTANCE]"
CreateOnInstall="yes" DropOnUninstall="yes" User="MySQLUser" ContinueOnError="yes">
<SqlScript Id="CreateDatabase" ExecuteOnInstall="yes" BinaryKey="CreateTablesBin"></SqlScript>
</SqlDatabase>
</Component>
</Directory>
</Directory>
</Directory>
<Binary Id="CreateTablesBin" src="CreateDatabase.sql"></Binary>
<Feature Id='Complete' Level='1' Description="Full" Title="Full Installation">
<ComponentRef Id='MySqlComponent' />
</Feature>
</Product>
</Wix>
Set the CreateOnInstall value to "yes". This will than create an instance of the database.

Wix: Problem creating database with SqlFileSpec and SqlLogFileSpec Filename attribute set under c:\Program Files directory

I have a problem creating database with SqlFileSpec and SqlLogFileSpec Filename attribute set under c:\Program Files directory. I also checked that the folder (C:\Program Files\TestProject) already created. Does anyone know how to solve this?
This is the error:
Error 26201. Error -2147217900: failed to create SQL database: MyDatabase, error detail: CREATE DATABASE failed. Some file names listed could not be created. Check related errors..
<sql:SqlFileSpec Id="Mdf" Name="MyDatabase_Mdf" Filename="['INSTALLLOCATION']\MyDatabase.mdf" Size="3072KB" MaxSize="UNLIMITED" GrowthSize="1024KB"/>
<sql:SqlLogFileSpec Id="Ldf" Name="MyDatabase_log" Filename="['INSTALLLOCATION']\MyDatabase_log.ldf" Size="2048KB" MaxSize="2048GB" GrowthSize="10%"/>
...
<Property Id='INSTALLLOCATION'>C:\Program Files\TestProject</Property>
Thanks in advance.
The quotes around INSTALLLOCATION should be removed - use just [INSTALLLOCATION]. And make sure the mentioned files (mdf/ldf) are there by the time the action runs. Don't forget that the verbose log is your friend here.
Try this
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
xmlns:sql="http://schemas.microsoft.com/wix/SqlExtension">
<Product Name='SQL app 1.0' Id='DB501C18-86C7-4D14-AEC0-86416A69ABDE' Language='1033' Codepage='1252'
Version='1.0.0' Manufacturer='ABC Ltd.'>
<Package Id='????????-????-????-????-????????????' Keywords='Installer' Description="SQL App 1.0 Installer"
Comments='Comment.' Manufacturer='ABC Ltd.' InstallerVersion='100'
Languages='1033' Compressed='yes' SummaryCodepage='1252' />
<Media Id='1' Cabinet='Sample.cab' EmbedCab='yes' />
<User Id="MySQLUser" Name="[SQLUSER]" Password="[SQLUSERPASSWORD]"></User>
<Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id='ProgramFilesFolder' Name='PFiles'>
<Directory Id='INSTALLDIR' Name='TestSQL'>
<Component Id="MySqlComponent" Guid="C50999A0-02FD-42d5-9F65-7375318DD328">
<SqlDatabase Id="MySqlDatabase" Database="MyDatabase" Server="[SQLSERVER]" Instance="[SQLINSTANCE]"
CreateOnInstall="yes" DropOnUninstall="yes" User="MySQLUser" ContinueOnError="yes">
<SqlScript Id="CreateDatabase" ExecuteOnInstall="yes" BinaryKey="CreateTablesBin"></SqlScript>
</SqlDatabase>
</Component>
</Directory>
</Directory>
</Directory>
<Binary Id="CreateTablesBin" src="CreateDatabase.sql"></Binary>
<Feature Id='Complete' Level='1' Description="Full" Title="Full Installation">
<ComponentRef Id='MySqlComponent' />
</Feature>
</Product>
</Wix>
CreateDatabase.sql file will contain the script to execute some script, create database, etc.
I've managed to fix my issue by using ".\SQLExpress2012" instead of "[MachineName]\SQLExpress2012" or "[ipAddress]\SQLExpress2012". I can only speculate that by doing the former, you might not be using TCP/IP method of connecting and using named pipes instead.
Also you might want to check your SQL Server Configuration and verify that your server instance support these connection methods.

Resources