Abr*_*sef 3 .net c# sql-server smo
我正在做一个VS2013使用smoobject 的C#项目.我安装了
Install-Package Microsoft.SqlServer.Scripting
Install-Package Microsoft.SqlServer.SqlEnum.dll
Run Code Online (Sandbox Code Playgroud)
通过 Nuget
并包括在内
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo.Agent;
Run Code Online (Sandbox Code Playgroud)
但得到以下错误
错误9程序集'Microsoft.SqlServer.Smo,Version = 11.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'使用'Microsoft.SqlServer.SqlEnum,Version = 11.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'哪个更高版本比引用的程序集'Microsoft.SqlServer.SqlEnum,Version = 10.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'
任何一只手?
问题是Smo和SqlEnum组件之间的版本不匹配,正如异常所指定的那样.问题是您使用Install-Package Microsoft.SqlServer.SqlEnum.dll的包是SQL Server 2008的旧包.
(Microsoft.SqlServer.SqlEnum.dll, Microsoft.SqlServer.ConnectionInfo.dll, Microsoft.SqlServer.Smo.dll)在SQL Server安装文件夹中有包含必要DLL文件的文件夹:
C:\Program Files\Microsoft SQL Server\110\SDK\AssembliesC:\Program Files\Microsoft SQL Server\120\SDK\Assemblies您可以在一个包中安装Nuget所需的所有DLL:
2012:https://www.nuget.org/packages/Unofficial.Microsoft.SQLServer.SMO/
2014:https://www.nuget.org/packages/Unofficial.Microsoft.SQLServer.SMO.2014/
包含的DLL:Microsoft.SqlServer.ConnectionInfo.dll,Microsoft.SqlServer.ConnectionInfoExtended.dll,Microsoft.SqlServer.Management.Sdk.Sfc.dll, Microsoft.SqlServer.Smo.dll,Microsoft.SqlServer.SmoExtended.dll,Microsoft.SqlServer .SqlClrProvider.dll, Microsoft.SqlServer.SqlEnum.dll
您应该使用创建引用时使用的文件夹中的Microsoft.SqlServer.SqlEnum.dll&Microsoft.SqlServer.ConnectionInfo.dllfile .或者您应该从NuGet安装匹配的程序集.版本11.0.0.0的DLL代表SQL Server 2014.SDK\AssembliesMicrosoft.SqlServer.Smo
请参阅文件和版本号以及在Visual Studio .NET中创建Visual C#SMO项目.
如果您只从NuGet安装一个正确的软件包,如https://www.nuget.org/packages/Unofficial.Microsoft.SQLServer.SMO.2014/,那么您应该没问题.