Search code examples
sql-server-2008objectsqldmo

Application cannot find Microsoft.SQLServer.SMO on SQL 2008 machine


I have code that uses Microsoft.SqlServer.Management.Smo. (Built in Visual Studio 2005 SP1) It works fine on SQL 2000 & SQL 2005 machine. But when it is run on SQL 2008 machine it throws an exception:

System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.SqlServer.Smo, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified. File name: 'Microsoft.SqlServer.Smo, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91'

=== LOG: This bind starts in default load context. LOG: No application configuration file found. LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config. LOG: Post-policy reference: Microsoft.SqlServer.Smo, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 LOG: Attempting download of new URL file:///C:/Documents and Settings/Automation/Desktop/Debug/Microsoft.SqlServer.Smo.DLL. LOG: Attempting download of new URL file:///C:/Documents and Settings/Automation/Desktop/Debug/Microsoft.SqlServer.Smo/Microsoft.SqlServer.Smo.DLL. LOG: Attempting download of new URL file:///C:/Documents and Settings/Automation/Desktop/Debug/Microsoft.SqlServer.Smo.EXE. LOG: Attempting download of new URL file:///C:/Documents and Settings/Automation/Desktop/Debug/Microsoft.SqlServer.Smo/Microsoft.SqlServer.Smo.EXE.

I have installed SQL 2005 Backwards compatibility pack (updated for SQL 2008) & SQL management Objects(Updated for SQL 2008)

Any suggestions.

i went through SQL Server SMO complains of missing DLL but not much of a help.


Solution

  • I found the issue. I was building the project with references to SQL 2005 SDK DLLs. I removed all the references & added the references again (now pointing to SQL 2008 dlls view post: http://msdn.microsoft.com/en-us/library/ms162129.aspx) for list of references to add. Additionally, the target machine needs to have Microsoft SQL Server 2005 Backward Compatibility Components & Microsoft SQL Server 2008 Management Objects & SQL Server System CLR Types (2008) installed.