错误:“;空间类型和功能不可用于该提供者”;

本文关键字:用于 提供者 空间 类型 错误 功能 | 更新日期: 2023-09-27 18:28:45

我得到错误:

空间类型和函数不可用于此提供程序,因为找不到程序集"Microsoft.SqlServer.types"版本10或更高版本。

我只在我的一台开发机器上收到这个错误——在另一台上,它工作正常。这两台机器上都安装了SQL Server 2014,这应该足够了,但显然还不够。除此之外,我还在解决方案中安装了nuget包"Microsoft.SqlServer.Types"(我也在几个下属项目中尝试过),并添加了适当的行来加载有问题的DLL:

Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);

调试显示有问题的行正在执行,并且步入其中,似乎有问题的DLL已成功加载。

用于运行项目(单元测试程序集)的同一台机器没有错误。这个错误大约在我将测试项目从MSTest切换到xUnit的同时开始出现,所以它很可能与此有关。

有什么解决问题的建议吗?

错误:“;空间类型和功能不可用于该提供者”;

FWIW,我最终通过在每个顶级项目中包括Microsoft.SqlServer.Types(包括单元测试),并在每个顶层项目中分别通过LoadNativeAssemblies方法加载DLL来实现这一点。文件中没有提到这一点,但这是我唯一能想到的有效方法。

降级到Microsoft.SqlServer.Types 11.0.2版适用于我。