我正在为 SQL Server 2008 创建一个 CLR 程序集,它只支持 .NET 2.0 程序集。此外,SQL Server 还要求您要注册的每个程序集都有一个强名称键。
我尝试创建的程序集引用了 .NET 2.0 版本的 json.net ( https://json.codeplex.com/ )。但是,我的项目无法生成 SNK 文件,因为 Newtonsoft.Json.dll 本身是未签名的。(至少这是我在尝试构建项目并对其进行签名时遇到的错误。)
我使用这里描述的技巧解决了这个问题:http: //buffered.io/posts/net-fu-signing-an-unsigned-assembly-without-delay-signing/
但是,当用我的项目的 SNK 重新组装 Newtonsoft.Json.dll 时,它必须生成目标框架高于 .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,我很想知道。谢谢!