无法在生产ASP.net网站上加载文件或程序集Microsoft.SqlServer.SqlClrProvider,它在哪里?

use*_*722 21 .net c# sql-server asp.net

在我的ASP.net网站上,我有一个参考Microsoft.SQLserver.SMO.我将此引用复制到我的生产服务器上并且无法加载错误Microsoft.SqlServer.Management.Sdk.Sfc.通过从中复制dll来修复此错误

C:\Program files\Microsoft Sql Server\110\SDK\Assembilies
Run Code Online (Sandbox Code Playgroud)

然而,我得到了同样的错误,但Microsoft.SqlServer.SqlClrProvider无处可寻.

我在哪里可以找到SqlClrProviderDLL?它适用于我的localhost所以它必须在某个地方.

Dan*_*iel 20

在您的开发计算机或安装了SQL Server的计算机上,该Microsoft.SqlServer.SqlClrProvider.dll文件位于您的GAC.但是,如果不更改注册表,则无法复制此文件.

使用注册表编辑器,转到HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Fusion.添加一个新的DWORD被叫DisableCacheViewer.给它一个值1.

完成此更改后,您可以转到C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.SqlClrProvider\获取所需的dll.

要查看更详细的说明,请按以下链接之一:

  • 这还是2019年最好的方式吗? (2认同)

Boo*_*oop 6

我想在 powershell 中制作一个嵌入式脚本并偶然发现你的同样问题。

问题是它Microsoft.SqlServer.SqlClrProvider.dll没有安装在 SQL 文件中,而是安装在 windows 中assembly

Assembly 文件夹很特别:你不能用 Windows UI 复制任何东西。

我只需要Microsoft.SqlServer.SqlClrProvider.dll这样我就可以像这样将它加载到我的脚本中:

[System.Reflection.Assembly]::LoadFile($scriptPath+"dll\Microsoft.SqlServer.SqlClrProvider.dll") | out-null
Run Code Online (Sandbox Code Playgroud)

要复制它,您可以执行以下操作:

c:\>cd c:\Windows\assembly
c:\Windows\assembly>dir /s Microsoft.SqlServer.SqlClrProvider.dll
# here you get the directory and the file
c:\Windows\assembly>copy c:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.SqlClrProvider\<version>\Microsoft.SqlServer.SqlClrProvider.dll c:\Users\Administrator\Desktop\
Run Code Online (Sandbox Code Playgroud)

您想在安装了 SQLserver 的机器上执行此操作,否则您可能找不到它。

这只是一种解决方法。如果您需要在不同的环境中执行脚本,我想这不是最好的做法。


Hos*_*ost 5

将 SqlClrProvider dll 复制到 sqlserver Binn 目录在我的情况下没有帮助。

原因:

这是由于在生产机器和目标机器上使用不同版本的 SQLServer造成的。

解决方案:

确保您使用的 SMO 库版本与目标计算机上的版本相同。如果目标计算机上有 SQLServer2008,则必须使用 v10 库,否则会出现此错误。

更多细节:

我的目标机器上的 SqlServer 是 2008 (10) 版,我自己的机器上有 SqlServer2014 (12)。当我使用 SMO 库时,visualstudio 添加了 v12 库(Microsoft.SqlServer.SMO,...),但 smo 只是一个使用 SqlClrProvider 的外壳,它希望在系统程序集上具有相同版本的 SqlClrProvider。这导致应用程序在目标机器上崩溃,因为 SqlClrProvider 的 v12 不存在。通过使用 v10 smo 库,我解决了这个问题


Joe*_*kes 5

有同样的问题,但对于版本 11。要安装正确的程序集,请执行以下步骤:

在此处输入图片说明


use*_*722 2

使用参考时我无法解决我的问题Microsoft.Sqlerver.SMO。因此,我使用该类System.Data.Sql.SqlDataSourceEnumerator来满足我所有的 Sql 功能需求。