我正在尝试使用依赖于DbGeography.PointFromText(text, 4326)
的代码编写一些单元测试,该代码需要加载Microsoft.SqlServer.Types
。我正在尝试使用以下方式加载它:
[OneTimeSetUp]
public void Startup()
{
SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);
}
我还尝试在[Setup]
方法中使用加载。当调用使用DbGeography
的代码时,我最终得到了一个可爱的例外:
system.invalidoperationException:空间类型和功能不是 该提供商可用于此提供商 找不到'microsoft.sqlserver.types'版本10或更高版本。
我确实已安装了Microsoft.SqlServer.Types
Nuget软件包,并且在我的Web API 2.2应用程序中工作正常,dandy。
您可以在系统上安装库,但是还需要记住在构建服务器和生产上安装等。
另外,在完成Microsoft.SqlServer.Types
Nuget的安装并按照指示加载组件方面取得了成功。对于Xunit,我将其包括在textfixure ctor中。
SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);
另外,发现我需要添加bindingRedects:
<dependentAssembly>
<assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" />
</dependentAssembly>
我最终安装了Microsoft SQL Server CLR类型,并且我的单元测试能够找到必要的类型。
- x86 -http://go.microsoft.com/fwlink/?linkid=239643&ClcID=0x409
- x64 -http://go.microsoft.com/fwlink/?linkid=239644&ClcID=0x409