我正在爲SQL Server 2008創建一個CLR程序集,該程序集僅支持.NET 2.0程序集。此外,SQL Server還需要一個強名稱密鑰,每個程序集要註冊。簽署一個未簽名的程序集並使用ilasm.exe針對.NET 2.0
我試圖創建參考json.net的.NET 2.0版(https://json.codeplex.com/)的程序集。但是,我的項目無法生成SNK文件,因爲Newtonsoft.Json.dll本身是未簽名的。 (至少,當我嘗試建立我的項目並簽名,我得到的錯誤。)
我得到解決此使用此處介紹的技巧:不過 http://buffered.io/posts/net-fu-signing-an-unsigned-assembly-without-delay-signing/
,重組Newtonsoft.Json.dll時與我的項目的SNK一樣,它必須生成一個高於.NET 2.0的目標框架的DLL。我知道這是因爲我得到SQL Server中的以下錯誤:
CREATE ASSEMBLY for assembly 'Newtonsoft.Json' failed because the assembly is built for an unsupported version of the Common Language Runtime.
有誰知道如何使ilasm.exe生成目標框架.NET 2.0的組件?或者我可能完全錯誤地解決了這個問題 - 如果在2008年CLR程序集中使用Newtonsoft.Json更好的解決方案,我很想知道。謝謝!
在SQL Server中使用的程序集中真的需要* json *嗎?如果你沒有真正使用它,只需刪除參考。 – acfrancis 2014-10-20 21:35:14
@acfrancis - 我完全同意這種功能不應該在CLR中。但是,考慮到我的項目的限制,我需要能夠通過SQL存儲過程來解釋json。我知道這很醜陋,但它需要完成。除了使用Newtonsoft.Json之外,你知道更簡單的方法嗎?再次,我需要的唯一功能是能夠將JSON文檔解碼爲C#中的對象。 – cody 2014-10-20 21:59:11