【发布时间】:2010-02-25 13:01:17
【问题描述】:
由于某种原因,我一直难以记住框架做出的向后/向前兼容性保证,所以我想永远把它放在床上。
假设我有两个程序集,A 和 B。 A 较旧并引用 .NET 2.0 程序集; B 引用 .NET 3.5 程序集。我分别有A 和B、Ax 和Bx 的来源;它们是在 2.0 和 3.0 语言级别用 C# 编写的。 (也就是说,Ax 不使用 C# 2.0 之后引入的功能;同样Bx 不使用 3.0 之后引入的功能。)
我有两个环境,C 和 D。 C 已安装 .NET 2.0 框架; D 已安装 .NET 3.5 框架。
现在,我可以/不可以做什么?
跑步:
- 在
C上运行A?在D上运行A? - 在
C上运行B?在D上运行C?
编译:
- 在
C上编译Ax?在D上编译Ax? - 在
C上编译Bx?在D上编译Bx?
重写:
- 重写
Ax以使用 C# 3 语言级别的功能,并在D上编译它,同时在C上仍然可以工作? - 重写
Bx以在另一个具有 .NET 4 的环境E上使用 C# 4 语言级别的功能,同时它仍然可以在D上工作?'
从另一个程序集引用:
- 从
A引用B并在C上使用客户端应用程序? - 从
A引用B并在D上有一个客户端应用程序使用它? - 从
B引用A并在C上使用客户端应用程序? - 从
B引用A并在D上使用客户端应用程序?
更重要的是,哪些规则可以控制这些假设场景的真假?
【问题讨论】:
-
必须了解更多才能了解这个问题!