【问题标题】:C# SMO and SqlEnum references errorC# SMO 和 SqlEnum 引用错误
【发布时间】:2016-08-18 09:28:49
【问题描述】:

我正在通过VS2013 做一个使用smo 对象的C# 项目。 我安装了

Install-Package Microsoft.SqlServer.Scripting
Install-Package Microsoft.SqlServer.SqlEnum.dll

Nuget

并包含

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

但出现以下错误

错误 9 程序集 'Microsoft.SqlServer.Smo, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' 使用 'Microsoft.SqlServer.SqlEnum,版本=11.0.0.0,文化=中性, PublicKeyToken=89845dcd8080cc91' 版本高于 引用程序集 'Microsoft.SqlServer.SqlEnum, Version=10.0.0.0, 文化=中立,PublicKeyToken=89845dcd8080cc91'

任何手?

【问题讨论】:

    标签: c# .net sql-server smo


    【解决方案1】:

    问题是 SmoSqlEnum 组件之间的版本不匹配,如异常所指定。 问题是您使用的包 Install-Package Microsoft.SqlServer.SqlEnum.dll 是 SQL Server 2008 的旧包。

    在您的 SQL Server 安装文件夹中有包含必要 DLL 文件 (Microsoft.SqlServer.SqlEnum.dll, Microsoft.SqlServer.ConnectionInfo.dll, Microsoft.SqlServer.Smo.dll) 的文件夹:

    • SQL 服务器 2012 C:\Program Files\Microsoft SQL Server\110\SDK\Assemblies
    • SQL Server 2014,2016 C:\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

    您应该使用SDK\Assemblies 文件夹中的Microsoft.SqlServer.SqlEnum.dllMicrosoft.SqlServer.ConnectionInfo.dll 文件,该文件夹是您在创建对Microsoft.SqlServer.Smo 的引用时使用的。或者您应该从 NuGet 安装匹配的程序集。 DLL 版本 11.0.0.0 代表 SQL Server 2014。

    Files and Version NumbersCreate a Visual C# SMO Project in Visual Studio .NET

    如果你只从 NuGet 安装了一个正确的包,比如https://www.nuget.org/packages/Unofficial.Microsoft.SQLServer.SMO.2014/,你应该没问题。

    【讨论】:

    • 如果您使用 .NET Core 但引用包就好像它们符合 NetStandard 一样,也会发生这种情况。
    猜你喜欢
    • 2012-04-01
    • 2011-01-26
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多