在单元测试之前加载Microsoft.SqlServer.Type 的正确方法是什么



我正在尝试使用依赖于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

相关内容

  • 没有找到相关文章

最新更新