The procedure entry point ?Base64Decode@CSMUtilString@Util@CSM@SensorModel@ESRI@@S A_NQBDPAPADAAI@Z could not be located in the dynamic link library C:\PROGRAM FILES (X86)\ARCGIS\ENGINE10.1\BIN\GdalRasterDB.dll.
IGPUtilities2 gpUtils = new GPUtilitiesClass();
IDataset workspace = null;
try
{
     workspace = gpUtils.OpenDatasetFromLocation(filepath);
}
catch (Exception)
{
}AccessViolationException was unhandled: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
    /// <summary>
    /// Loads the CSM.dll from ArcGIS BIN path in case the process wants to load the Microsoft library of same name.
    /// Call this method as early as possible to be effective (e.g. main form OnLoad, program's entry point method).
    /// </summary>
    private static void PreLoadEsriCSM(bool debugOnly)
    {
      if (!debugOnly || System.Diagnostics.Debugger.IsAttached)
      {
        string path = System.IO.Path.Combine(ESRI.ArcGIS.RuntimeManager.ActiveRuntime.Path, "Bin\\CSM.dll");
        if (System.IO.File.Exists(path))
        {
          bool isConflict = false;
          bool isMatch = false;
          using (var p = System.Diagnostics.Process.GetCurrentProcess())
          {
            foreach (System.Diagnostics.ProcessModule m in p.Modules)
            {
              if (m.ModuleName.ToLower() == "csm.dll")
              {
                if (path.ToLower() != m.FileName.ToLower())
                  isConflict = true;
                else
                {
                  isMatch = true;
                  break;
                }
              }
            }
          }
          if (isConflict && !isMatch)
            System.Diagnostics.Debug.WriteLine("It may be necessary to call this method earlier to be effective.");
          if (!isMatch)
            LoadLibrary(path);
        }
      }
    }
    [System.Runtime.InteropServices.DllImport("kernel32.dll")]
    internal static extern IntPtr LoadLibrary(string dllname);
					
				
			
			
				
			
			
				
			
			
			
			
			
			
		Thanks! My similar issue was finally solved.
<configuration> <system.diagnostics> <switches> <add name="Remote.Disable" value="1" /> </switches> </system.diagnostics> </configuration>
Thank you!!!! After 5 days i found your solution!!!
Thank you! 5 years on, and your clever hack has saved another from going nuts.