我正在为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