2012-07-01 7 views
5

Estoy creando una aplicación en C# visual studio 2012 RC.Ejecutar archivo .sql desde la aplicación en C# utilizando la biblioteca SMO

Tengo que ejecutar los scripts dentro de la aplicación. para esto estoy usando. Estas dos bibliotecas. El framework .net de mi aplicación es 4.5.

using Microsoft.SqlServer.Management.Smo; 
using Microsoft.SqlServer.Management.Common; 

Escribí el código para ejecutar los scripts después de verificar si la base de datos del tiempo existe o no.

Cuando ejecuto el código, aparece una excepción inesperada. realmente sé lo que significa. ¿Podría ayudarme para deshacerse de esta excepción?

Estoy adjuntando mi código y la vista previa de excepción también.

Por favor, AYÚDENME ... Ya he hecho demasiadas búsquedas en Google.

enter image description here

**Here are the Exception Details.** 

System.IO.FileLoadException era no controlada HResult = -2146232799 Message = conjunto de modo mixto se construye contra la versión 'v2.0.50727' del tiempo de ejecución y no se puede cargar en el tiempo de ejecución de 4,0 sin información de configuración adicional. Fuente = mscorlib StackTrace: en System.Reflection.RuntimeAssembly.GetType (montaje RuntimeAssembly, String name, Boolean throwOnError, Boolean ignoreCase, tipo ObjectHandleOnStack) en System.Reflection.RuntimeAssembly.GetType (String name, Boolean throwOnError, Boolean ignoreCase) en System.Reflection.Assembly.GetType (String nombre, Boolean throwOnError) en Microsoft.SqlServer.Management.Common.ServerConnection.GetStatements (String query, ExecutionTypes executionType, Int32 & statementsToReverse) en Microsoft.SqlServer.Management.Common .ServerConnection.ExecuteNonQuery (String sqlCommand, ExecutionTypes executionType) en Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery (String sqlCo mmand) en McFarlaneIndustriesPOSnamespace.SplashScreen.CreateDatabase() en e: \ Works \ McFarlane Industrias \ McFarlane Industrias de Punto de Venta Fuente Código \ \ McFarlaneIndustries SplashScreen.cs: Línea 139 en McFarlaneIndustriesPOSnamespace.SplashScreen.splashScreenTimer_Tick (Object sender, EventArgs e) en e: \ Works \ McFarlane Industries \ Código de punto de venta McFarlane Industries Código fuente \ McFarlaneIndustries \ SplashScreen.cs: línea 159 en System.Windows.Forms.Timer.OnTick (EventArgs e) en System.Windows.Forms.Timer. TimerNativeWindow.WndProc (Mensaje & m) en System.Windows.Forms.NativeWindow.DebuggableCallback (IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) en System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW (MSG & msg) en System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop (IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) en System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner (Int32 reason, Contexto de ApplicationContext) en System.Windows.Forms.Application.ThreadContext.RunMessageLoop (razón Int32, contexto ApplicationContext) en System.Windows.Forms.Application.Run (Form mainForm) en McFarlaneIndustriesPOSnamespace.Program.Main() en e: \ Works \ McFarlane Industries \ McFarlane Industries Punto de venta Código fuente \ McFarlaneIndustries \ Program.cs: línea 19 en System.AppDomain._nExecuteAssembly (montaje RuntimeAssembly, String [] args) en System.AppDomain.nExecuteAssembly (RuntimeAssembly montaje, args String []) en System.Runtime.Hosting.ManifestRunner.Run (Boolean checkAptModel) en System.Runtime.Hosting.ManifestRunner .ExecuteAsAssembly() en System.Runtime.Hosting.ApplicationActivator.CreateInstance (ActivationContext ActivationContext, String [] activationCustomData) en System.Runtime.Hosting.ApplicationActivator.CreateInstance (ActivationContext ActivationContext) en System.Activator.CreateInstance (ActivationContext ActivationContext) en Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone() en System.Threading.ThreadHelper.ThreadStart_Context (estado del objeto) en System.Threading.ExecutionContext.RunInternal (ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) en System.Threading.ExecutionContext.Run (ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) en System.Threading. ExecutionContext.Run (ExecutionContext executionContext, ContextCallback de devolución de llamada, el estado del objeto) en System.Threading.ThreadHelper.ThreadStart() InnerException:

+0

Escriba los detalles de la excepción – saille

+0

He editado la pregunta y añado los detalles de la excepción tal como lo solicitó. La instantánea muestra el punto en el que aparece la excepción. Por favor, vea los detalles y la instantánea también. –

Respuesta

5

parece que usted está tratando de cargar la versión 2 de .NET Microsoft.SqlServer.xxxx .dll. Actualización de sus referencias a una versión .net4 (preferible), o añadir el siguiente mantra a su app.config bajo la <configuration> nodo

<startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/> 
    <requiredRuntime version="v4.0" /> 
</startup> 

para permitir la carga de .NET 2 conjuntos. Ver here for details.

+0

Estas dos bibliotecas a las que se hace referencia en mi proyecto no estaban allí en mi ensamblado. luego descargo el archivo MSI "SharedManagementObjects.msi" x64 para sql server 2008 R2. después de que esta excepción aparece. ahora voy a descargar este archivo de la página web del servidor sql 2012. Espero que .net Choque no llegue. estoy yendo bien señor. ¿Realmente lo instalo? o algo mas. Es este el camino correcto. –

+0

Háganos saber si sqlsvr2012 tiene .net 4 SMO API. De lo contrario, use las modificaciones de app.config para que las cosas funcionen. – spender

+0

Eres grandioso ... eres el mejor ... eres genial ... señor ... ahora soy fanático ... Mi problema está resuelto ... Gracias ... mucho. Mucho mucho mucho ... –

Cuestiones relacionadas