无法加载文件或程序集microsoft.sqlserver.sqlclrprovider 13.100.0.0

Ole*_*leg 15 .net sql-server smo .net-assembly

我使用SQLServer程序集运行我的Winforms应用程序Microsoft.SqlServer.ConnectionInfo(13.100.0.0)Microsoft.SqlServer.SMO(13.100.0.0)

在同一台机器上安装了SSMS 2016(Aug).这里也安装了SQL 2014开发版.

当我运行我的应用程序时,它给了我一个错误:

?onnection = new ServerConnection(instanceName);
------------
Could not load file or assembly ‘microsoft.sqlserver.sqlclrprovider version=13.100.0.0?
Run Code Online (Sandbox Code Playgroud)

我检查过:GAC包含一些这样的程序集11,12,13.0.0.0,但是没有13.100.0.0.

该应用程序已从以下引用程序集:C:\ Program Files(x86)\ Microsoft SQL Server\130\DTS\Tasks

Microsoft.SqlServer.ConnectionInfo (13.100.0.0)
Microsoft.SqlServer.SMO(13.100.0.0)
Run Code Online (Sandbox Code Playgroud)

我的操作系统是Windows 7,我认为所有13.100.0都是由SSMS安装程序安装的.如何解决这个问题呢?我可以找到程序集microsoft.sqlserver.sqlclrprovider 13.100.0.0吗?

Cha*_*non 7

https://connect.microsoft.com/SQLServer/feedback/details/3106613/net-exception-could-not-load-file-or-assembly-microsoft-sqlserver-sqlclrprovider-13-100-0-0-after-安装-SQL服务器-2016

客户端应用程序不应使用Program Files文件夹中的程序集,除非它们来自特定的SDK文件夹(例如"C:\ Program Files(x86)\ Microsoft SQL Server\130\SDK")

您看到的13.100.*版本的程序集目前仅供Microsoft工具使用,因此不会将所有必需的依赖项放在同一位置.DTS文件夹特别只有SMO程序集的子集,因为该代码不需要诸如SqlClrProvider之类的东西.

请使用SDK文件夹中的程序集或SharedManagementObjects.msi中的程序集作为应用程序的参考.

-Charles Gagnon(chgagnon@microsoft.com)

  • 在这种情况下,我的VS解决方案使用SDK程序集:C:\ Program Files(x86)\ Microsoft SQL Server\110\SDK\Assemblies\Microsoft.SqlServer.Smo.dll等和Copy Local = true.当我将解决方案复制到仅安装SQL2014 + SSMS 2016的其他计算机时,会出现此问题.谢谢,我会再次重新检查一下. (2认同)
  • 这是一个严肃的循环参考.尽管安装了SQLSysClrTypes.msi和SharedManagementObjects.msi,但我找不到除了GAC_MSL C:\ Windows\assembly\GAC_MSIL\Microsoft.SqlServer.ConnectionInfo\13.0.0.0__89845dcd8080cc91之外的Microsoft.SqlServer.ConnectionInfo.dll.这是预期的行为吗? (2认同)

小智 5

我遇到过同样的问题.使用更新的SSMS,主SMO现在安装在"C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Tasks"VS中的版本13.100.0.0(Microsoft.SqlServer.Smo.dll文件具有13.0.15700.28版本)但没有引用Microsoft.SqlServer.SqlClrProvider.dll GAC.当我选择SSMS提供的那个时,我的代码中会有一个例外.

问题是SSMS的安装程序将这些私有SMO的引用添加到Visual Studio的引用列表中; 我在Microsoft Connect上发布了一个错误.Charles Gagnon给了我一个解决方法(使用HintPath),我在我的.csproj文件中实现了它.