.net 无法加载DLL';SqlServerSpatial.dll';
我有一个.NET MVC web应用程序,它引用了.net 无法加载DLL';SqlServerSpatial.dll';,.net,sql-server,azure,.net,Sql Server,Azure,我有一个.NET MVC web应用程序,它引用了System.Data.Spatial,因此我可以在属性上使用DbGeography数据类型来进行一些地理定位。我将Visual Studio 2012与.NET 4.5一起使用,并且在我的开发计算机上没有完整安装SQL Server(仅localdb) 在我将其推到Azure之前,该应用程序运行良好。当我的应用程序点击myDbGeography属性时,它会抛出以下错误: 无法加载DLL“SqlServerSpatial.DLL”:指定的模块无法
System.Data.Spatial
,因此我可以在属性上使用DbGeography
数据类型来进行一些地理定位。我将Visual Studio 2012与.NET 4.5一起使用,并且在我的开发计算机上没有完整安装SQL Server(仅localdb)
在我将其推到Azure之前,该应用程序运行良好。当我的应用程序点击myDbGeography
属性时,它会抛出以下错误:
无法加载DLL“SqlServerSpatial.DLL”:指定的模块无法加载
找不到
还有其他人遇到过此问题吗?SqlServerSpatial.dll是非托管代码。您必须在服务器上安装正确的版本(64位)。将DLL添加到项目中。将SqlServerSpatial110.dll的属性设置为“复制到输出目录=始终复制”
您可以找到详细信息我遇到了这个问题,并且确实缺少SqlServerSpatial110.dll 我最后按照这里的说明做了: 基本上你需要弄到这个.dll然后 将SqlServerSpatial110.dll放在\Windows\System32中(通常位于 磁盘C)如果您运行的是32位Windows。如果您正在运行64位 Windows,另外将文件放置在\Windows\SysWOW64中
和SqlGeometry
类型可用于VS项目(例如。 通过引用SqlGeometry
Microsoft.SqlServer.Types.dll
Microsoft.SqlServer.Types.dll是一个托管库,具有一些 非托管库作为先决条件,它们类似于
和SqlServerSpatialXXX.dll
msvcrXXX.dll
- 自Sql Server 2008以来,不同版本的
是可用的,但是,我没有看到任何可用的 功能从2012年起发生变化Microsoft.SqlServer.Types.dll
有关详细的解决方案,您可能希望在另一篇类似的文章中看到my。SQL 2012也会安装此dll,SQL 2014不会!您必须在计算机上安装Microsoft System CLR Types for SQL Server 2008 R2
- 1033\x64\SQLSysClrTypes.msi
- 1033\x86\SQLSysClrTypes.msi
- 1033\IA64\SQLSysClrTypes.msi
I had the same issue in godaddy VPS with windows server 2012 r2
我通过将EF5更新为EF6解决了这个问题
在包管理器控制台中,运行到EF5到EF LAELEST
Install-Package EntityFramework
我花了很长一段时间与它斗争,我安装了所需的文件,但它仍然无法工作 显然,该项目想要使用x86 SqlServerSpatial.dll 因此,我在工具>选项>Web项目>使用64位IIS中将IIS Express版本更改为x64 不需要添加新的nuget软件包,只需从microsoft页面安装SQLSysClrTypes即可:而且应该可以;)
希望它能帮助别人 谢谢大家!!我试图添加对DLL的引用,但作为非托管代码,这显然不起作用。我在我的项目中创建了一个Lib目录,并将文件固定在那里。@ryanw51,请帮助。您在项目中创建了一个“lib”目录,并将文件粘贴在那里是什么意思。@kooldave98在项目中创建一个新文件夹,将SqlServerSpatial.dll复制到该文件夹中,并将其与项目一起部署。@kooldave98您读过吗@IanGrainger您是否引用了Microsoft.SqlServer.Types.dll?您是否使用了正确的版本(32/64位)?我这样做了,没有任何区别。您好,@Mahmoodvcs-请您更新此答案,说明它取决于IIS/IIS Express的体系结构!我安装了适用于我的体系结构(64)的正确版本,但IIS Express默认以32位模式运行!将上述内容放入app.config文件中。根据需要更改新版本。这解决了问题。相关话题:这对我有用。我使用nuget将SqlServerTypes程序集下载到我的解决方案中,但当我运行EntityFramework命令Add Migration时,它找不到SqlServerSpatial140.dll。我的IIS是32位的,但我的Windows体系结构是64位的,因此我必须将32位dll复制到C:\\Windows\\SysWOW64中。如果运行命令Add Migration and get System.BadImageFormatException,则当dll应为32位时,您有一个64位dll。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.SqlServer.Types"
publicKeyToken="89845dcd8080cc91" culture="neutral" />
<bindingRedirect oldVersion="10.0.0.0" newVersion="12.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>