Skip to content

Instantly share code, notes, and snippets.

@LindaLawton
Last active October 7, 2015 09:28
Show Gist options
  • Save LindaLawton/15629e10f79ab6a0be66 to your computer and use it in GitHub Desktop.
Save LindaLawton/15629e10f79ab6a0be66 to your computer and use it in GitHub Desktop.
Wix installer for custom ssis tasks.
<?xml version="1.0" encoding="UTF-8"?>
<Wix
xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="Daimto for SSIS (SQL Server 2008)" Language="1033" Version="1.0.0.0"
Manufacturer="DAIMTO" UpgradeCode="84543418-55c4-48c0-b5be-2496fb84ffb6">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perUser"
InstallPrivileges="elevated" AdminImage="yes" />
<MediaTemplate EmbedCab="yes" CompressionLevel="high" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<Feature Id="SSISMSSQL" Title="SSIS Components" Display='expand' Level='1'>
<ComponentRef Id='SSISPipelineComponents' />
<ComponentRef Id='SSISConnections' />
<ComponentGroupRef Id="CopyGAC"/>
<ComponentGroupRef Id="Fake"/>
</Feature>
<UIRef Id="WixUI_Minimal"/>
</Product>
<!-- Get install location of SQL Server 2008 -->
<Fragment>
<Property Id="SQLSERVERINSTALLFOLDER">
<RegistrySearch Id='InstallDir'
Type='directory'
Root='HKLM'
Key="SOFTWARE\Microsoft\Microsoft SQL Server\100" Name="VerSpecificRootDir" />
</Property>
<Condition Message='Install Folder not found'>SQLSERVERINSTALLFOLDER</Condition>
<ComponentGroup Id="Fake" />
</Fragment>
<!-- map the directory structures -->
<Fragment>
<Directory Id = "TARGETDIR" Name="SourceDir">
<Directory Id="GAC" Name="GAC" />
<Directory Id="SQLSERVERINSTALLFOLDER" >
<Directory Id="DTSDir" Name="DTS">
<Directory Id="PIPELINECOMPONENTS" Name="PipelineComponents" />
<Directory Id="CONECTIONS" Name="Connections" /></Directory>
</Directory>
</Directory>
<!-- Set TARGETDIR dir to c: -->
<SetDirectory Id="TARGETDIR" Value="[WindowsVolume]" />
</Fragment>
<!-- copie files. -->
<Fragment>
<!-- copy data reader files -->
<ComponentGroup Id="SSISPipelineComponentsgrp" Directory="PIPELINECOMPONENTS">
<Component Id="SSISPipelineComponents" Guid="{51CE96C7-42BF-4CE7-AE88-5C0085868062}" >
<File Id="Daimto.SSIS.Tasks.Current" Name="Daimto.SSIS.Tasks.Current.dll"
DiskId="1" KeyPath="yes" Source="$(var.Daimto.SSIS.Tasks.Current.TargetPath)" />
<File Id="Newtonsoft.Json.dll" Name="Newtonsoft.Json.dll" DiskId="1" KeyPath="no"
Source="$(var.ProjectDir)Externals\Newtonsoft.Json.dll" />
</Component>
</ComponentGroup>
<!-- copy connection manager file -->
<ComponentGroup Id="SSISConnectionsgrp" Directory="CONECTIONS">
<Component Id="SSISConnections" Guid="{8DFFB861-18E4-4E08-8D4E-CAD99911E8A8}" >
<File Id="Daimto.SSIS.Connection" Name="Daimto.SSIS.Connection.dll" DiskId="1"
KeyPath="yes" Source="$(var.Daimto.SSIS.Connection.TargetPath)" />
</Component>
</ComponentGroup>
<!-- copy everything to GAC (remember dlls must be strong name signed.) -->
<ComponentGroup Id="CopyGAC" Directory="GAC">
<Component Id="GACCOPYCurrent" Guid="{4D4E991E-77F5-4CCF-9048-B4C0260B43BD}" >
<File Id="GACDaimto.SSIS.Tasks.Current" Name="Daimto.SSIS.Tasks.Current.dll"
KeyPath="yes" Source="$(var.Daimto.SSIS.Tasks.Current.TargetPath)" Assembly=".net"/>
</Component>
<Component Id="GACCOPYJson" Guid="{65E88F62-E73F-4851-9422-6C8D1DA5183F}" >
<File Id="GACNewtonsoft.Json.dll" Name="Newtonsoft.Json.dll"
KeyPath="yes" Source="$(var.ProjectDir)Externals\Newtonsoft.Json.dll" Assembly=".net"/>
</Component>
<Component Id="GACCOPYConnection" Guid="{2DCABCEA-62CD-4F0D-BCAC-395A079AF27A}" >
<File Id="GACDaimto.SSIS.Connection" Name="Daimto.SSIS.Connection.dll"
KeyPath="yes" Source="$(var.Daimto.SSIS.Connection.TargetPath)" Assembly=".net"/>
</Component>
</ComponentGroup>
</Fragment>
</Wix>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment