Register the XA DLL on installation.
authorHiroshi Inoue <inoue@tpf.co.jp>
Fri, 26 Sep 2014 02:38:18 +0000 (11:38 +0900)
committerHiroshi Inoue <inoue@tpf.co.jp>
Fri, 26 Sep 2014 02:43:08 +0000 (11:43 +0900)
MSDTC runs in 64bit mode on 64bit machines and 32bit mode on 32bit machines.
We had better register the XA DLL on installation.

installer/psqlodbcm_cpu.wxs

index 468bd1c876ee5259fda38646835159ddd08f46a4..09973bf4aa5cef2a54ee81e95d196cce7567a039 100644 (file)
@@ -17,6 +17,7 @@
   <?define UNICODEFOLDER = "x64_Unicode_Release" ?>
   <?define Module_PackageId = "970B6E07-7105-4d66-80FA-9E208952FB96" ?>
   <?define CIDPFILES = "5C9A19B5-D7C6-4bb4-BBBC-88C2A67A59B0" ?>
+  <?define CIDXFILES = "121A6C41-2B8F-463D-BA84-6BF36701428A" ?>
   <?define InstallerVersion = "300" ?>
 <?else?>
   <?define ModuleName = "psqlODBC" ?>
@@ -25,6 +26,7 @@
   <?define UNICODEFOLDER = "x86_Unicode_Release" ?>
   <?define Module_PackageId = "ACF10866-5C01-46f0-90F0-D5618638CA48" ?>
   <?define CIDPFILES = "00A1ACE3-B7C2-41b8-A1F1-DB565990DA4E" ?>
+  <?define CIDXFILES = "49933A1E-4350-437C-B8D5-E96AA5D61139" ?>
   <?define InstallerVersion = "150" ?>
 <?endif?>
 
@@ -50,7 +52,6 @@
           <!-- PostgreSQL -->
           <File Id="psqlodbc30a.dll" Name="psqlodbc30a.dll" Source="../$(var.ANSIFOLDER)/psqlodbc30a.dll" />
           <File Id="psqlodbc35w.dll" Name="psqlodbc35w.dll" Source="../$(var.UNICODEFOLDER)/psqlodbc35w.dll" />
-          <File Id="pgxalib.dll" Name="pgxalib.dll" Source="../$(var.UNICODEFOLDER)/pgxalib.dll" />
           <File Id="pgenlist.dll" Name="pgenlist.dll" Source="../$(var.UNICODEFOLDER)/pgenlist.dll" />
           <File Id="pgenlista.dll" Name="pgenlista.dll" Source="../$(var.ANSIFOLDER)/pgenlista.dll" />
    <!-- MSVC Runtime -->
 <?if $(var.Platform) = x64 ?>
           <ODBCDriver Id="Psqlodbc_9.0_Driver_ANSI" Name="PostgreSQL ANSI($(var.Platform))" File="psqlodbc30a.dll" />
           <ODBCDriver Id="Psqlodbc_9.0_Driver" Name="PostgreSQL Unicode($(var.Platform))" File="psqlodbc35w.dll" />
-     <!--
-       Because MSDTC runs in 64bit mode on 64bit machine, we had
-       better register the XA DLL on installation.
-     --> 
-          <RegistryValue Id="psqlodbc.reg.1" Root="HKLM" Key="SOFTWARE\Microsoft\MSDTC\XADLL" Name="pgxalib.dll" Type="string" Value="[#pgxalib.dll]" />
 <?else?>
           <RegistryValue Id="psqlodbc30a.reg.1" Root="HKLM" Key="SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers" Name="PostgreSQL ANSI" Type="string" Value="Installed" />
           <RegistryValue Id="psqlodbc30a.reg.2" Root="HKLM" Key="SOFTWARE\ODBC\ODBCINST.INI\PostgreSQL ANSI" Name="APILevel" Type="string" Value="1" />
           <RegistryValue Id="psqlodbc35w.reg.9" Root="HKLM" Key="SOFTWARE\ODBC\ODBCINST.INI\PostgreSQL Unicode" Name="UsageCount" Type="integer" Value="1" />
 <?endif?>
         </Component>
+   <!--
+       MSDTC runs in 64bit mode on 64bit machines and 32bit mode on
+       32bit machines. We had better register the XA DLL on 
+       installation.
+   --> 
+        <Component Id="pgxalib.files" Guid="$(var.CIDXFILES)" Win64="$(var.BIT64)">
+<?if $(var.BIT64) = no ?>
+     <Condition>
+       <![CDATA[NOT VersionNT64]]>
+     </Condition>
+<?endif?>
+          <File Id="pgxalib.dll" Name="pgxalib.dll" Source="../$(var.UNICODEFOLDER)/pgxalib.dll" />
+          <RegistryValue Id="pgxalib.reg.1" Root="HKLM" Key="SOFTWARE\Microsoft\MSDTC\XADLL" Name="pgxalib.dll" Type="string" Value="[#pgxalib.dll]" />
+   </Component>
       </Directory>
     </Directory>