ThinkGeo.com    |     Documentation    |     Premium Support

Help needed about the new D2D

Hi,


When I want to use the new feature I get the following message :


Cannot find WindowsApiCodePack assembly.


What should I do? 


 


jm.



Hi Jean-marie, 

  

How you use the new D2D? Could you paste some code segments? 



Regards, 



Don




 Map1.MapBackground.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#E5E3DF"));
            Map1.MapUnit = GeographyUnit.DecimalDegree;
            Map1.CurrentExtent = new RectangleShape(-126.826171875, 57.104766845702, -70.83984375, 18.960235595702);
            Map1.GeoCanvas = new WicBitmapGeoCanvas();
 


Hi Jean-marie,  
  
 I think that’s because you haven’t copy the Microsoft.WindowsAPICodePack.DirectX.dll to system32 folder. 
  
 You can download the file here: wiki.thinkgeo.com/wiki/File:MapSuiteWicBitmapExtension2011-11-24.zip 
  
 And here we have some description about new D2D: gis.thinkgeo.com/Support/DiscussionForums/tabid/143/aff/12/aft/9812/afv/topic/Default.aspx 
  
 Regards, 
  
 Don

Hi Don, 
  
 I have installed all the components in the way that is explained in your documentation.  However I am wondering if there is not something that is not provided like the WindowsAPICodePack from Microsoft???  Let me know because the error message is not about your DLL but about the  WindowsApiCodePack assembly that is not availableon my sytem. 
  
 jm

Jean-Marie,


The elements listed in the readme are the only requirements. Are you sure you copied the WindowsApiCodePackx64 and x86 folders so they are listed as shown below?



If I run my Web 5.5.13.0 sample application without these folders located correctly I get the following exception: 




Hi Brian, 
  
 Thanks for your help, I didn’t realized that the SysWoW64 was involved…  now it is working on my Desktop. 
  
 I tried the same setup on my server 2008 R2 and it seems that I get the error message about the Microsoft.WindowsAPICodePack.DirectX assembly not found… is 2008 R2 X64 server setup the same that for my Windows 7 X64? 
  
 thanks. 
  
 jm.

The issue is that the Visual Studio Web server runs as a 32-bit process so it is looking for dlls in the ‘32-bit’ dll location. On a 64-bit machine the 64-bit dlls are stored in the ‘system32’ directory and the 32-bit dlls are stored in the ‘SysWow64’ folder. Thus you needed the WindowsAPICodePack dlls in the 32-bit location which is the SysWow64\Map Suite 5.5 folder. 
  
 Your Windows 2008 server has the same folder structure but be careful as it depends on how you have compiled your application and if you have your deployment application pool set to run 64 or 32-bit applications. If you have your application pool set to run 64-bit applications and you compiled your application to run as AnyCPU you would be running your application on the server as a 64-bit application and the dlls would need to reside in the System32/Map Suite 5.5 folder.

Is it possible to remove the requirement of those dlls located in SysWow64 folder?  For our deploy systems all dlls need to reside in the same directory of where the web site is deployed and its has been working so far, even for static dlls.  Our individual deploy sites don’t have permissions to write to windows system folders on the server.  Can this be addressed?

Hi Val, 
  
 I did test and review the code for you, it looks we only look for the Microsoft.WindowsAPICodePack.DirectX.dll in target system folder. 
  
 I will talk with our developer and let you know whether we can do something for you. 
  
 Regards, 
  
 Don

Any updates on this?

 Hello Val,


 
Thanks for your patience, we have fixed this, now we will check the assemblies in the same folder first, please get the latest version and replace the new WicBitmapExtension.dll and have another try.
 
Regards,
 
Gary

WicBitmapExtension.zip (151 KB)

Hi Gary, 
  
 I don’t believe this resolves the issue.  I tried it with the latest version that you attached and I still get a crash with an error message ‘Cannot find WindowsApiCodePack assembly.’ unless those dll’s are in SysWow64 directory.   
  
 Event message: Cannot find WindowsApiCodePack assembly. 


I am also seeing some difference between how images are rendered with the same code.


 


For example, the image on the left below was rendered with WIC extension, vs. the image on the right with the old approach.


 


 



Hello Val, 
  
 Thanks for your further information, I think you need refer the last WebEdition dlls(5.5.156.0 and refer MapSuite and WebEdition) and and replace the new WicBitmapExtension.dll which I provided above. 
  
 Please let me know if you still meet the problem. 
  
 Regards, 
  
 Gary

I just tried 5.5.157.0 - still the same issue.

Hello Val, 
  
 I’m pretty sure we fixed it when I post in 02-01-2012, it’s a long time now and I didn’t have any environment to test it now, I will do some research and do the test later and let you know the result. 
  
 Regards, 
  
 Gary

Val, 
  
 Could you provide the code for your sample in thread "04-13-2012 02:19 PM"? That can help us debug in local machine, so that easy to find problem if there is. 
  
 Thanks, 
 James

Does this extension needs to be updated for 6.0?

Hello Val,


Yes, the extension need update too, please try the attached extension file with newest product dlls, I have test on my computer, it's working fine, you don't need put the WindowsApiCodePack to the SystemWow64 folder now, you can just put it under your product folder.


Please let us know if you still meet the problem.


Regards,


Gary



001_WicBitmapExtension.zip (23.8 KB)