Erreur de reference C # SMO et SqlEnum

Je fais un projet C # par VS2013 qui utilise l'object smo . j'ai installé

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

par Nuget

et inclus

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

mais en obtenant l'erreur suivante

Erreur 9 Assembly 'Microsoft.SqlServer.Smo, Version = 11.0.0.0, Culture = neutre, PublicKeyToken = 89845dcd8080cc91' utilise 'Microsoft.SqlServer.SqlEnum, Version = 11.0.0.0, Culture = neutre, PublicKeyToken = 89845dcd8080cc91' qui a un plus haut version que l'assembly référencé 'Microsoft.SqlServer.SqlEnum, Version = 10.0.0.0, Culture = neutre, PublicKeyToken = 89845dcd8080cc91'

une main?

Le problème est l'incompatibilité de version entre le composant Smo et le composant SqlEnum , comme l'indique l'exception. Le problème est que le package, vous avez utilisé Install-Package Microsoft.SqlServer.SqlEnum.dll est un package plus ancien pour SQL Server 2008.

Il existe des dossiers contenant les files DLL nécessaires (Microsoft.SqlServer.SqlEnum.dll, Microsoft.SqlServer.ConnectionInfo.dll, Microsoft.SqlServer.Smo.dll) dans votre dossier d'installation SQL Server:

  • SQL Server 2012 C:\Program Files\Microsoft SQL Server\110\SDK\Assemblies
  • SQL Server 2014,2016 C:\Program Files\Microsoft SQL Server\120\SDK\Assemblies

Vous pouvez installer toutes les DLL dont vous avez besoin de Nuget dans un package:

2012: https://www.nuget.org/packages/Unofficial.Microsoft.SQLServer.SMO/

2014: https://www.nuget.org/packages/Unofficial.Microsoft.SQLServer.SMO.2014/

DLL incluses: 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

Vous devez utiliser Microsoft.SqlServer.SqlEnum.dll file Microsoft.SqlServer.SqlEnum.dll et Microsoft.SqlServer.ConnectionInfo.dll dossier SDK\Assemblies que vous avez utilisé lors de la création de la reference à Microsoft.SqlServer.Smo . Ou vous devez installer des assemblys correspondants à partir de NuGet. La version 11.0.0.0 des DLL est synonyme de SQL Server 2014.

Voir files et numéros de version et créer un projet Visual C # SMO dans Visual Studio .NET .

Si vous installez seulement un package correct de NuGet comme https://www.nuget.org/packages/Unofficial.Microsoft.SQLServer.SMO.2014/ , vous devriez être OK.