ThinkGeo.com    |     Documentation    |     Premium Support

sqlserverSpatial110.dll Issue

 Ok, so here is the normal part:


 


Our application, which has not had any issues with this before last week, is suddenly crashing when it is installed on client machines, saying it cannot find sqlserverSpatial110.dll.  From reading up on this, it looks like I will need to include Microsoft_VC100_CRT_x86.msm in my installer (WiX).  Will this take care of the sqlserverSpatial110.dll, or does that also need to be added into my installer?  Will I have to include both the 32 and 64-bit versions, and install them into the System32 and SysWOW64 folders, respectively?


 


Here is the strange part:


 


The need for the sqlserverSpatial110.dll isn't consistant.  I can have a certain code path that will install and run just fine without it.  However, when I change some code in just one routine, or change which method a different method calls, suddenly we get the above errors.  None of the routines in question do anything that works with the on-screen map.  Any idea why this would suddenly start happening, or why changing code in the form.vb file where the map resides would change the requirement for this .dll?


 


Thanks,


Dib Oglesby


 



Hi Dib, 
  
 The “sqlserverSpatial110.dll” is used for doing geoprocessing. It’s added after 6.0 major release into “Development Branch”. In other words, the exception will not shown if there isn’t geoprocessing in your code, I guess that’s why you just get the exception sometimes. To avoid this exception. there are 2 options: 
 1. Switch the static GeometryLiberary property of the BaseShape to “Managed”, which will not require these DLLs.  
 2. Download the corresponding DLL package with version 6.0.315.0 or later,  and then unzip it and install “Map Suite Unmanaged Dependencies.msi”, all these mergeModule".msm" will be found under its installation folder. If your release exe or setup is based on “x86 platform”, I guess you need to intergrate “32 bit version .msm” into your setup, otherwise, use x64 .msm instead. In other words, which one should be referenced is dependes on the platform of your setup. 
  
 Hope it helps and thanks. 
  
 Johnny

One of my first lines of code is BaseShape.GeometryLibrary = GeometryLibrary.Managed, but the error is still happening.   
  
 I downloaded DesktopEditionFull6.0.316.0DllPackage.zip, and unzipped it, then ran Map Suite Unmanaged Dependencies 6.0.296.0.msi.  This gave me a folder, Map Suite Unmanaged Dependencies 6.0.296.0.  There are no merge module files (.msm) anywhere under this folder.  There are x86 and x64 copies of SqlServerSpatial110.dll.  I created installers with one, then the other.  The x86 version throws an error: 
  
 Unable to load DLL ‘SqlServerSpatial110.dll’: The specified module could not be found. (Exception from HRESULT: 0x8007007E) 
  
 The x64 version throws a different error, System.BadImageFormatException: An attempt was made to load a program with an incorrect format.  
  
 Neither of these installs includes any .msm files, as I didn’t see them after running the .msi above. 
  
 Any ideas on my next step? 


Hi Dib, 
  
 I think you put the SqlserverSpatial110.dll to incorrect path, the one in the X86 folder should be put into the System32 folder, then the other should be put to the SysWow64 Folder. And you should also put the Microsoft.SqlServer.Types.dll into your bin folder. 
  
 Hope it helps, 
 Edgar