Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 未找到EF6方法集\ SQLServerTypesSemblyNames_C#_Entity Framework_Entity Framework 6 - Fatal编程技术网

C# 未找到EF6方法集\ SQLServerTypesSemblyNames

C# 未找到EF6方法集\ SQLServerTypesSemblyNames,c#,entity-framework,entity-framework-6,C#,Entity Framework,Entity Framework 6,在服务器上部署控制台应用程序时遇到困难 我正在使用EF6(6.3.0)和SqlServerTypes 14(14.0.1016.290),并按照建议在进行任何空间调用之前进行初始化 SqlProviderServices.SqlServerTypesAssemblyName = Assembly.GetAssembly(typeof(Microsoft.SqlServer.Types.SqlGeography)).FullName; //"Microsoft.SqlServer.Types, V

在服务器上部署控制台应用程序时遇到困难

我正在使用EF6(6.3.0)和SqlServerTypes 14(14.0.1016.290),并按照建议在进行任何空间调用之前进行初始化

SqlProviderServices.SqlServerTypesAssemblyName = Assembly.GetAssembly(typeof(Microsoft.SqlServer.Types.SqlGeography)).FullName; //"Microsoft.SqlServer.Types, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91";
SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);
但是在setter行上,会抛出以下错误

System.MissingMethodException:找不到方法:“Void System.Data.Entity.SqlServer.SqlProviderServices.set_SQLServerTypesSemblyName(System.String)”

我已确保SqlServerTypes DLL存在于bin目录中

我读到EF6只支持我尝试过的SqlServerTypes 11,但是运气不好

应用程序在本地运行良好

编辑:我现在在服务器上安装了SQL Server系统CLR类型,但没有效果。

当开发运行时和部署环境在GAC中安装了不同版本的包,并且没有将开发环境中的所有DLL复制到部署环境中时,可能会发生此错误(以及其他类似错误)

这个问题提供了可能有用的指导:

  • 我首选的解决方法是遵循并对每个dll中的类或函数进行修改,您依赖这些类或函数来“欺骗”visual studio,使其在默认情况下将dll包含在输出中,并在该程序集不可用时强制执行编译时错误(在通过注入使用dll的情况下非常有用)
如果您不知道哪个dll可能是原因,并且应用程序在开发过程中运行良好,那么一个简单的修复方法就是将所有引用标记为Copy Local=True:


然后,如果可行,您可以从您认为不需要的输出中删除DLL,反复测试应用程序是否仍在运行,直到找到需要部署的最小DLL集为止

尝试升级到v15类型,确保通过NuGet安装。另一件要尝试的事情是编译为x86,如果这是可行的,那么您正在加载错误的dllruntime@ChrisSchallerNuGet中没有SqlServer.Types 15.x?该程序集不是通过NuGet交付的。有空。坦率地说,考虑到EF6中的半空间支持,在任何情况下,你都应该考虑使用和NotoTraceSueTo,你所张贴的东西不会初始化任何东西。它尝试更改EF使用的SqlServerTypes程序集。虽然是EF类,但不是SqlServerTypes类。该错误表示您使用了错误的EF类型-可能是错误地使用了EF 5.0,或者是EF 6.3删除了属性。如果您不想从客户端发出空间查询,您可以使用它将地理值读取为BLOB并在客户端上解析它们。