Dot-Net

無法載入 DLL ‘SqlServerSpatial.dll’

  • October 29, 2021

我有一個 .NET MVC Web 應用程序引用System.Data.Spatial,因此我可以將DbGeography屬性上的數據類型用於一些地理定位的東西。我正在使用帶有 .NET 4.5 的 Visual Studio 2012,並且在我的開發機器上沒有完整安裝 SQL Server(只有 localdb)。

該應用程序執行良好,直到我將其推送到 Azure。一旦我的應用程序點擊我的DbGeography財產,它就會拋出這個錯誤:

無法載入 DLL ‘SqlServerSpatial.dll’:找不到指定的模組。

有沒有其他人遇到過這個問題?

SqlServerSpatial.dll 是非託管程式碼。您必須在伺服器上安裝正確的版本(64 位)。將 DLL 添加到您的項目中。將 SqlServerSpatial110.dll 的屬性設置為“複製到輸出目錄 = 始終複製”

您可以在此處找到詳細資訊

SQL 2012 也安裝了這個 dll,SQL 2014 沒有!您必須在電腦上安裝 Microsoft System CLR Types for SQL Server 2008 R2。

  1. <http://www.microsoft.com/en-us/download/details.aspx?id=26728>
  2. 點擊下載
  3. 根據您的處理器架構檢查其中一項:
  • 1033\x64\SQLSysClrTypes.msi
  • 1033\x86\SQLSysClrTypes.msi
  • 1033\IA64\SQLSysClrTypes.msi
  1. 點擊下一步

編輯

作為Ian Grainger評論,您必鬚根據您的 IIS 安裝正確的版本。顯然 IIS Express 預設以 32 位模式執行。

引用自:https://stackoverflow.com/questions/16868326