Skip to main content

Command Palette

Search for a command to run...

Dapper 使用 Microsoft.SqlServer.Types 找不到正確版本問題

Updated
1 min read
Dapper 使用 Microsoft.SqlServer.Types 找不到正確版本問題

Microsoft.SqlServer.Types-could-not-load-file-or-assembly-correct-version

Could not load file or assembly 'Microsoft.SqlServer.Types, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91

緣由

最近因為工作緣故一直都有在處理地理資料,那最常用的 SQL Server 也有提供地理資料型態,SQL Server 提供了兩種關於地理資料型態,分別為: gepgraphy 與 geometry,這兩種的差別我當初也好奇了很久,之後再寫一篇文章來說明,後來採用的 geography 作為儲存的型態

使用 Dapper 作為存取資料庫的方法,因為使用到 geography 的關係,所以裝了 Microsoft.SqlServer.Types,這又是一段故事,容後再說

使用的 SQL Server 是 2012,所以安裝的版本就選了 11.0.2

開發測試一切都沒問題,結果一部署上去,有用到地理資料的部分就爆了 Exception,錯誤訊息節錄如下

Could not load file or assembly 'Microsoft.SqlServer.Types, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91

到這邊就令人百思不解,我明明就安裝的是 SQL Server 2012,Nuget 版本也都選 11.0.2,怎麼會突然爆出一個找不到 Microsoft.SqlServer.Types, Version=10.0.0.0 的錯誤,想了一陣子確定沒用到關於 SQL Server 2008 系列的東西,於是就上網找了找

找到了這篇:Could not load file or assembly ‘Microsoft.SqlServer.Types

原因與解法

深入了看一下,因為使用了 SQL Server Spatial Types,應用程式在伺服器上找不到相對應的 Dll,所以就出錯了

解決方法很簡單,微軟有提供 SQL Server System CLR Types 安裝檔,最佳回答的連結已經更換了,微軟直接把他切成一個一個的安裝檔,這樣就不用只為了一個功能還要安裝所有檔案

我在後面的回答整理了連結

Microsoft® System CLR Types for SQL Server® 2008 R2:

X86 Package(SQLSysClrTypes.msi)

X64 Package (SQLSysClrTypes.msi)

安裝完畢後應該就可以生效,若是沒生效重開機即可

備註

根據不同的版本,需要下載相對應的 System CLR Types

版本對照表:如何判斷 SQL Server 及其元件的版本、版次及更新層級

More from this blog

Career-Ops 安裝與設定 — 用 AI 來幫你篩職缺、客製履歷

最近在看新的工作機會,光是瀏覽職缺、比對 JD、調整履歷就花了不少時間。 後來找到 Career-Ops 這個開源專案 作者 santifer 用這套系統篩了 740 多個職缺、產出 100 多份客製化履歷,最後拿到 Head of Applied AI 的 offer。 看起來蠻有意思的,所以我就在 Windows 上實際裝了一輪,這篇就來把整個安裝和設定的過程記錄下來。 我這邊搭配的 AI 後

Apr 12, 20265 min read
Career-Ops 安裝與設定 — 用 AI 來幫你篩職缺、客製履歷

讓 LLM 自動化你的 N8N 工作流程:n8n-mcp-server 安裝指南

前言 網路上一大堆都是在介紹如何在 N8N 裡面用 MCP 來呼叫其他工具,但是更多時候我希望 LLM 能直接幫我寫好或是修改 N8N 的工作流程 所以這篇就來介紹如何設定與使用 n8n-mcp-server 來讓 LLM 幫忙操控 N8N 在 GitHub 上有不少的 n8n-mcp-server,經過一下下的簡單搜索,我決定使用這個專案: n8n-mcp-server 原因在於說這個專案的實作提供了基本上所有需要編輯工作流程的功能,以下就來記錄安裝過程 MCP Server 設定 首先當然...

May 28, 20253 min read

[IT 鐵人賽] ASP.NET Core 與 Log 紀錄和追蹤的愛恨交織 - Day 05 - Elmah - 02

.NET Core Logging- Elmah 02 上一篇我們提到了基本的使用方式,接下來的這一篇我們就來講講要怎麼把 Log 放到不同的儲存體上,以及如何過濾 Log Log 儲存方式 我們先來看這些 Log 倒底存在哪裡,目前共有三種儲存方式,如下: MemoryErrorLog — store errors in memory 預設為使用此方式,簡單來說就是將錯誤 Log 都存在記憶體裡,所以只要應用程式一重新啟動,Log 就沒了;但是也是最方便的方式,只是要注意如果 Log 太...

Oct 20, 20182 min read
[IT 鐵人賽] ASP.NET Core 與 Log 紀錄和追蹤的愛恨交織 - Day 05 - Elmah - 02

[IT 鐵人賽] ASP.NET Core 與 Log 紀錄和追蹤的愛恨交織 - Day 04 - Elmah - 01

.NET Core Logging- Elmah 01 Elmah 是我最一開始使用的 Log 工具,基本上它的功能就是將應用程式所有發生的錯誤記錄下來,不需要改變程式架構,而且又有介面可以觀看,十分的方便;它從 WebForm 時代就有了,到了 MVC 也是運作的很好,那這邊就來介紹一下 Elmah 要如何在 ASP.NET Core 中使用 (.NET Core 也可使用)。 不過很可惜的,目前並沒有釋出官方的 Elmah for .NET Core,不過有一個新專案: ElmahCore...

Oct 19, 20181 min read
[IT 鐵人賽] ASP.NET Core 與 Log 紀錄和追蹤的愛恨交織 - Day 04 - Elmah - 01

[IT 鐵人賽] Azure Data Service - Day 04 - Cognitive Service - 辨識 - Video Indexer

Azure Data Service - Day 04 - Cognitive Service - Vision - Video Indexer 前面幾篇都是介紹靜態影像的辨識與分析,那這篇就來到針對影片來做處理。 Cognitive Service 針對影片辨識的部分提供了:Video Indexer 它整合了許多功能,在這邊列出一些比較重要的功能: 語系偵測 可以自動偵測出這個影片是屬於哪個語系,目前支援: English, Spanish, French, German, Italia...

Oct 19, 20181 min read
[IT 鐵人賽] Azure Data Service - Day 04 - Cognitive Service - 辨識 - Video Indexer

BrainBurst, HeadFirst

45 posts

學習學到老,撞牆撞到腦. A lifelong quest—with forehead dents.