none
Unable to load DLL 'sqlceme35.dll' in SSIS package RRS feed

  • Question

  • I am running Win7 Ultimate x64, VS 2008. I can create a new SQL Compact database in VS with several tables and no rows. Then I create the simplest possible SSIS package with a single data flow task that copies directly from SQL Server to this new SQL Compact database, but it fails complaining that sqlceme35.dll can't be loaded.

    I've seen other posts stating that SQL CE doesn't run on 64-bit, but then why was I able to create the sdf in the fist place, and how could the SSIS designer read the metadata inside the sdf file so I could set up column mappings?

    Anyway, I'm stuck and can't run my package, so any help is greatly appreciated. Full exception detail pasted below. Thanks!

     

    [SQLce Agency [16]] Error: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.DllNotFoundException: Unable to load DLL 'sqlceme35.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
       at System.Data.SqlServerCe.NativeMethods.DllAddRef()
       at System.Data.SqlServerCe.SqlCeConnection..ctor()
       --- End of inner exception stack trace ---
       at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
       at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
       at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
       at System.Activator.CreateInstance(Type type, Boolean nonPublic)
       at Microsoft.SqlServer.Dts.Runtime.ManagedHelper.GetManagedConnection(String assemblyQualifiedName, String connStr, Object transaction)
       at Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSConnectionManager100.AcquireConnection(Object pTransaction)
       at Microsoft.SqlServer.Dts.Pipeline.SqlCEDestinationAdapter.AcquireConnections(Object transaction)
       at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostAcquireConnections(IDTSManagedComponentWrapper100 wrapper, Object transaction)

    Thursday, April 15, 2010 8:14 PM

Answers

  • Your problem is 64-bit.  The BIDS designer is 32-bit (you can check by running Task Manager) - but when you run the package interactively in BIDS, it launches DtsDebugHost in 64-bit (by default).  You can alter this behaviour by changing the project properties' Run64BitRuntime property to false.

    For more information: SSIS in 32- and 64-bits.


    Todd McDermid's BlogOn Twitter
    • Marked as answer by Zongqing Li Friday, April 23, 2010 8:30 AM
    Thursday, April 15, 2010 8:23 PM
    Moderator

All replies

  • Your problem is 64-bit.  The BIDS designer is 32-bit (you can check by running Task Manager) - but when you run the package interactively in BIDS, it launches DtsDebugHost in 64-bit (by default).  You can alter this behaviour by changing the project properties' Run64BitRuntime property to false.

    For more information: SSIS in 32- and 64-bits.


    Todd McDermid's BlogOn Twitter
    • Marked as answer by Zongqing Li Friday, April 23, 2010 8:30 AM
    Thursday, April 15, 2010 8:23 PM
    Moderator
  • Of course, that makes perfect sense. Working like a charm now. Thanks!
    Thursday, April 15, 2010 8:42 PM