您是否需要指定使用最新的框架版本?

时间:2010-09-08 18:33:59

标签: .net

有一个项目编译使用(TargetFrameworkVersion)框架版本3.0但是看起来在最新的v4.0框架和HF中有一些错误修复。正如我们希望应用程序即使在早期框架上稍微泄漏一样可用,我们也不希望将目标设置为4.0。

当您浏览项目时,您可以看到它具有运行时版本,但“特定版本”标记为false。

当我们运行应用程序时,我们可以告诉它实际使用的框架部分。它会默认为3.0还是会使用最新的程序集。 如果默认为3.0,则可以通过某种方式设置某种策略以使用新程序集(如果可用)。

针对4.0框架的编译是否会在运行时使用它时产生任何不同的结果?

3 个答案:

答案 0 :(得分:2)

当您运行.NET应用程序时,它将默认为为其编译的Framework版本。您可以通过在Configuration / Startup部分的app配置文件中包含SupportedRuntime元素来指定它可以使用其他Frameworks。但是,我不认为应用程序可以指定它在后来的框架上运行,而不是它为其构建的。

如果您希望运行时尝试使用v4.0,但如果没有安装,您仍然可以在v3.5上运行,那么您应该在4.0中编译应用程序,并在应用程序配置中包含一个SupportedRuntime元素,其中包含完整版本v3.5的(包括构建)。

答案 1 :(得分:1)

当不确定应用程序实际加载了哪些库时,您可以考虑在调试器中执行一些代码以列出加载的程序集as in this reference,或者在应用程序运行时打开模块调试窗口(默认快捷方式)在VS 2010中:Ctrl-Alt-U)。

答案 2 :(得分:1)

如果您针对3.0或3.5框架进行编译,并且客户端只有框架4,则应尝试使用该版本,除非您具有特定的版本集。但是,您可能需要注意一些重大变化。从我所知,有一个很好的方法来选择性地混合框架版本,这似乎不是一个真正的好主意(tm)。不过,框架4现在无处不在。在大多数情况下,定位它可能是安全的。