我正在寻找有关 .NET 框架特定版本之间前向兼容性的可靠建议。
为清楚起见,假设我们谈论的是仅支持 .NET 2.0 的 SQL Server 2008,并且我们在其中加载了一个带有存储过程的 v3.5 程序集,以及它的所有 v3.5 依赖项。
一方面,我们知道 .NET 框架大多是向后兼容的。
我们还知道,仅框架 1.1 支持前向兼容性,而不是超出此范围。但是,框架 2.0、3.0 和 3.5 的 CLR 版本是相同的:CLR 2.0。
这些事实如何结合?
“CLR 相同”的事实能否获胜?是否可以说,由于三个固件版本之间的 CLR 版本相同,只要还引入了所有依赖项,就可以安全地将 v3.5 代码引入 v2.0 环境?在哪种情况下,我们可以将“不支持前向兼容性”通知视为在一般情况下正确,但在 v3.5-v2.0 关系的特定情况下不正确?
(我们实际上已经尝试将具有所有依赖项的 v3.5 程序集导入 SQL Server 2008。它有效。但我想知道它是因为它应该有效,还是因为脆弱的魔法。)