Do I have to package integrated MSI separately?
I am packaging a source EXE of a tyre management application. When the EXE installs, it extracted an extra SQL Server R2 Native Client MSI and installs the MSI.
I captured them together and made a new MSI, but when I install the new MSI, I received error:
Error1918, Error installing ODBC driver: SQL Server Native Client 10.0. ODBC error 13: The setup routines for the SQL Server Native Client 10.0 ODBC driver could not be loaded due to system error code 126: The specified module could not be found. (C:\Windows\syswow64\SQLNCL~1.DLL|sqlncli10.dll). Verify the file SQL Server Native Client 10.0 exists and that you can access it.
The above dll does exist when I open the syswow64 folder.
I also received anther error:
Error:1904. Module C:\Windows\SysWOW64\1033\sqlnclir10.rll failed to register HRESULT -2147024769. Contact your support personnel.
The above rll does exist.
I even tried to capture the package then do not delete anything then compile to a new MSI but still recieved the same error.
My questions are:
1. Is it a good practice to capture the source EXE and the integrated SQL client MSI together?
2. If yes, what do the two errors mean?
3. If no, how to package them separately then? Thanks!
Answers (6)
Thanks for all your help guys. I packaged the main application EXE separately from the SQL Native Client msi. It worked beautifully. Actually packaging them separately is much easier than packaging them into one package because far less files and regitry keys got captured. Thanks again!
Error 1918 means that the ODBC entries in your tables or in registries are not proper.
If you are configuring through registeries, then check for HKLM\Software\ODBCINST.INI and HKLM\Software\ODBCINST.INI\ODBC Drivers, that your driver exists.
Else if you are configuring through tables, then check for ODBCAttribute table that Setup and Driver attributes has the path to the dll.
Thanks for all your help guys. I packaged the main application EXE separately from the SQL Native Client msi. It worked beautifully. Actually packaging them separately is much easier than packaging them into one package because far less files and regitry keys got captured. Thanks again!
Comments:
-
good job.. - piyushnasa 12 years ago
-
:-) - SMal.tmcc 12 years ago
Go to MS's site and download the client for 64bit and try using that to install prior to installing tyre management application
http://www.microsoft.com/en-gb/download/details.aspx?id=30440
Hi,
I would extract the SQL Client seperately and treat that as a dependency package for the main application.
Check if main applciation is a exe or MSI and based on that take necessary actions.
If its a exe ,take the capture to have a MSI and make sure to install the SQL client before taking the first snapshot.