ThinkGeo.com    |     Documentation    |     Premium Support

Error Loading Mr Sid Raster Layer

Hi,


I am using the full version of Desktop 4.5.0.0. I am trying to load a MrSid raster layer using the following code:



      oRasterLayer = New MrSidRasterLayer("C:\Data\IFMS\Org141\WOODVILLE_NE.sid")
      oRasterLayer.LowerThreshold = 0
      oRasterLayer.UpperThreshold = Double.MaxValue
      oOverlay.Layers.Add(oRasterLayer)

      WinformsMap1.Overlays.Add("RasterLayer", oOverlay)

      With oRasterLayer
         .Open()
         WinformsMap1.CurrentExtent = .GetBoundingBox
         .Close()
      End With
      WinformsMap1.Refresh()


When the raster layer is opened (using the Open method) or the map refreshes I always get the same error:


System.IO.FileLoadException was unhandled   Message=Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information.   Source=mscorlib   StackTrace:        at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)        at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)        at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)        at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark)        at System.Reflection.Assembly.LoadFrom(String assemblyFile)        at ThinkGeo.MapSuite.Core.xbde0958acd0fe179..ctor()        at ThinkGeo.MapSuite.Core.MrSidRasterSource.OpenCore()        at ThinkGeo.MapSuite.Core.RasterSource.Open()        at ThinkGeo.MapSuite.Core.RasterLayer.OpenCore()        at ThinkGeo.MapSuite.Core.Layer.Open()        at ThinkGeo.MapSuite.DesktopEdition.LayerOverlay.DrawCore(GeoCanvas canvas)        at ThinkGeo.MapSuite.DesktopEdition.Overlay.MainDraw(GeoCanvas canvas)        at ThinkGeo.MapSuite.DesktopEdition.Overlay.Draw(GeoCanvas canvas)        at ThinkGeo.MapSuite.DesktopEdition.WinformsMap.x03e3d48bcfe7bb6c(IEnumerable`1 xa6f0db4f183189f1)        at ThinkGeo.MapSuite.DesktopEdition.WinformsMap.xff5b27c00f9678c2(RectangleShape x178b193eec228e6e)        at ThinkGeo.MapSuite.DesktopEdition.WinformsMap.xe3cee4adb9c72451()        at ThinkGeo.MapSuite.DesktopEdition.WinformsMap.x9ac8c50f434f4b39(Int32 xb565f4681f05557a)        at ThinkGeo.MapSuite.DesktopEdition.WinformsMap.Refresh()        at MapTutorial.MainForm.LoadData() in C:\Users\steller\Documents\Visual Studio 2010\Projects\MapTutorial\MainForm.vb:line 181        at MapTutorial.MainForm.MainForm_Load(Object sender, EventArgs e) in C:\Users\steller\Documents\Visual Studio 2010\Projects\MapTutorial\MainForm.vb:line 45        at System.EventHandler.Invoke(Object sender, EventArgs e)        at System.Windows.Forms.Form.OnLoad(EventArgs e)        at System.Windows.Forms.Form.OnCreateControl()        at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)        at System.Windows.Forms.Control.CreateControl()        at System.Windows.Forms.Control.WmShowWindow(Message& m)        at System.Windows.Forms.Control.WndProc(Message& m)        at System.Windows.Forms.ScrollableControl.WndProc(Message& m)        at System.Windows.Forms.Form.WmShowWindow(Message& m)        at System.Windows.Forms.Form.WndProc(Message& m)        at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)        at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)        at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)        at System.Windows.Forms.SafeNativeMethods.ShowWindow(HandleRef hWnd, Int32 nCmdShow)        at System.Windows.Forms.Control.SetVisibleCore(Boolean value)        at System.Windows.Forms.Form.SetVisibleCore(Boolean value)        at System.Windows.Forms.Control.set_Visible(Boolean value)        at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)        at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)        at System.Windows.Forms.Application.Run(ApplicationContext context)        at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()        at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()        at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)        at MapTutorial.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81        at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)        at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)        at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()        at System.Threading.ThreadHelper.ThreadStart_Context(Object state)        at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)        at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)        at System.Threading.ThreadHelper.ThreadStart()   InnerException:


Any idea what the problem is?


Thanks,


Steve



Here’s a clue.  The same MrSid layer opens OK in the ‘How Do I’  samples.  The ‘How Do I’ project references the 3.5 .NET framework and I am using 4.0. 
  
 Steve

I have answered my own question.  I needed to add a line to my App.config file to enable the use of older .NET frameworks.  Here is the line I added: 


 <startup useLegacyV2RuntimeActivationPolicy="true" >
  </startup>
 Hope this helps somebody.



Steven, 
  
 I am glad you fix it by yourself and also thank you for your sharing. 
  
 Thanks 
 James