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.
Related
I'm writing a DNN 9 custom module using ASP.NET MVC. My development site is setup at dnndev.me and the module is located in C:\websites\dnndev.me\DesktopModules\MVC|MyModule
My DNN manifest is as follows:
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="Onboarding" type="Module" version="00.00.05">
<friendlyName>Onboarding</friendlyName>
<description>Onboarding</description>
<iconFile>~/Icons/Sigma/Software_32X32_Standard.png</iconFile>
<owner>
<name>example.com</name>
<organization>example.com</organization>
<url>https://example.com/</url>
<email>info#example.com</email>
</owner>
<license src="License.txt"></license>
<releaseNotes src="ReleaseNotes.txt"></releaseNotes>
<dependencies>
<dependency type="CoreVersion">08.00.00</dependency>
</dependencies>
<components>
<component type="Script">
<scripts>
<basePath>DesktopModules\MVC\MyModule</basePath>
<script type="Install">
<path>Providers\DataProviders\SqlDataProvider</path>
<name>00.00.01.SqlDataProvider</name>
<version>00.00.01</version>
</script>
<script type="UnInstall">
<path>Providers\DataProviders\SqlDataProvider</path>
<name>Uninstall.SqlDataProvider</name>
<version>00.00.01</version>
</script>
</scripts>
</component>
<component type="ResourceFile">
<resourceFiles>
<basePath>DesktopModules/MVC/MyModule</basePath>
<resourceFile>
<name>Resources.zip</name>
</resourceFile>
</resourceFiles>
</component>
<component type="Module">
<desktopModule>
<moduleName>Onboarding</moduleName>
<foldername>Onboarding</foldername>
<businessControllerClass>MySite.Modules.Onboarding.Components.FeatureController</businessControllerClass>
<supportedFeatures />
<moduleDefinitions>
<moduleDefinition>
<friendlyName>Onboarding</friendlyName>
<defaultCacheTime>0</defaultCacheTime>
<moduleControls>
<moduleControl>
<controlKey />
<controlSrc>Example.Modules.Onboarding.Controllers/Onboarding/Index.mvc</controlSrc>
<supportsPartialRendering>False</supportsPartialRendering>
<controlTitle />
<controlType>View</controlType>
<iconFile />
<helpUrl />
<viewOrder>0</viewOrder>
</moduleControl>
<moduleControl>
<controlKey>Edit</controlKey>
<controlSrc>Example.Modules.Onboarding.Controllers/Onboarding/Edit.mvc</controlSrc>
<supportsPartialRendering>False</supportsPartialRendering>
<controlTitle>Edit Onboarding Records</controlTitle>
<controlType>Edit</controlType>
<iconFile />
<helpUrl />
<viewOrder>0</viewOrder>
<supportsPopUps>True</supportsPopUps>
</moduleControl>
<moduleControl>
<controlKey>Settings</controlKey>
<controlSrc>Example.Modules.Onboarding.Controllers/Settings/Settings.mvc</controlSrc>
<supportsPartialRendering>False</supportsPartialRendering>
<controlTitle>Onboarding Settings</controlTitle>
<controlType>Edit</controlType>
<iconFile />
<helpUrl />
<viewOrder>0</viewOrder>
</moduleControl>
</moduleControls>
</moduleDefinition>
</moduleDefinitions>
</desktopModule>
</component>
<component type="Assembly">
<assemblies>
<assembly>
<name>Onboarding.dll</name>
<path>bin</path>
</assembly>
<assembly>
<name>RestSharp.dll</name>
<path>bin</path>
</assembly>
<assembly>
<name>EntityFramework.dll</name>
<path>bin</path>
</assembly>
<assembly>
<name>EntityFramework.SqlServer.dll</name>
<path>bin</path>
</assembly>
<assembly>
<name>Newtonsoft.Json.dll</name>
<path>bin</path>
</assembly>
</assemblies>
</component>
</components>
</package>
The module won't install despite ensuring that all assemblies are in the bin folder under dnndev.me.
What must I do to rectify this issue?
If you built your MVC module using the Chris Hammond template, you will have the msbuild process for packaging the module that is driven by the file: BuildScripts/ModulePackage.targets
In that file, there is a line of code:
<Copy SourceFiles="$(MSBuildDnnBinPath)\$(AssemblyName).dll" DestinationFolder="$(MSBuildProjectDirectory)\Package\bin"/>
That is responsible for picking up the module's assembly in your local install's bin folder and copying it to the package folder that gets zipped. There is no automated step for including other custom dlls in there. This line occurs twice: once for the 'source' package and the other for the 'install' package.
Most of the time, I will just update this script to include my dependencies. Example:
<Copy SourceFiles="$(MSBuildDnnBinPath)\$(AssemblyName).dll" DestinationFolder="$(MSBuildProjectDirectory)\Package\bin"/>
<Copy SourceFiles="$(MSBuildDnnBinPath)\Onboarding.dll" DestinationFolder="$(MSBuildProjectDirectory)\Package\bin"/>
This isn't the most elegant solution as you need to hardcode your dependencies in the build script. But it works for simple modules. If you know a little about msbuild, you could use a copy step that includes all dlls in a folder and move your dependencies to a single folder and include all of them from the folder.
The way you do it means that the assemblies are included in your install package. To test if the assembies are installed (in the bin folder), you need to add a dependency, but there is no dependency to an assembly containing a version number or something alike. The trick is to add a dependency to a type defined in the assembly, e.g.
<dependency type="Type">DocumentFormat.OpenXml.Extensions.WorksheetWriter</dependency>
AFAIR it is important that the value of the type attribute is case-sensitive, so it has to be "Type", and not "type" or "TYPE".
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
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?
I have 2 version of installer created by using wix. Old version differents of new version by files in components: some files from one component was moved to another one:
Was:
<!--OLD version-->
<Component Id="Component_1" Guid="{43E78920-7C99-412d-A69C-8017DA608D8D}">
<File DiskId='1' Name="File_1.dll"/>
<File DiskId='1' Name="File_2.dll"/>
</Component>
<Component Id="Component_2" Guid="{520261C3-0608-46d1-A284-6BED54DD525A}" KeyPath="yes">
<File DiskId='1' Name="File_3.dll"/>
</Component>
now:
<!--NEW version-->
<Component Id="Component_1" Guid="{43E78920-7C99-412d-A69C-8017DA608D8D}">
<File DiskId='1' Name="File_1.dll"/>
<File DiskId='1' Name="File_3.dll"/>
</Component>
<Component Id="Component_2" Guid="{520261C3-0608-46d1-A284-6BED54DD525A}" KeyPath="yes">
<File DiskId='1' Name="File_2.dll"/>
</Component>
File_3.dll move from "Component_2" to "Component_1" and File_2.dll move to "Component_2" from "Component_1".
All components included at the same Feature.
Now, after installation new version over old version result is next: File_3.dll is exist but other files has been deleted.
I wish new version only upgrade old version files.
How does resolve this problem?
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.