我尝试使用NUnit为依赖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应用程序中工作得很好。
答案 0 :(得分:0)
我最终安装了Microsoft SQL Server CLR类型,我的单元测试能够找到必要的类型。
答案 1 :(得分:0)
您可以在系统上安装库,但是随后还需要记住要在构建服务器和生产环境等上安装。
或者,已经成功完成了Microsoft.SqlServer.Types
NuGet的安装并按照说明加载了程序集。对于xunit,我将其包含在TextFixure ctor中。
SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);
另外,发现我需要添加bindingRedirects:
<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>