我的代码将在哪个CLR中执行?

时间:2009-08-11 11:59:30

标签: .net clr

考虑我在我的开发机器中有两个版本的.Net(.Net 1.1,2.0)。如果我正在针对.Net 1.1部署我的应用程序X并部署另一个应用程序Y agaings .Net 2.0框架。

现在我需要知道我的两个应用程序将在哪个CLR(1.1或2.0)中运行?

还说明原因?

3 个答案:

答案 0 :(得分:12)

MSDN article非常清楚地解释了这一切:

  

.NET Framework的版本   确定运行的应用程序   如下:

     
      
  • 如果是.NET Framework的版本   应用程序是针对构建的   存在于计算机上,   应用程序在该版本上运行。

  •   
  • 如果是.NET Framework的版本   应用程序是针对构建的   不存在和配置   文件未指定版本   <supportedRuntime>元素,   应用程序在最新版本上运行   .NET Framework的存在   在电脑上。

  •   
  • 如果是.NET Framework的版本   应用程序是针对构建的   不存在和配置   file指定一个版本   <supportedRuntime>元素,   应用程序在最新版本上运行   在应用程序中指定的   配置文件并存在于   电脑。

  •   

正如Sam在评论中提到的,一个例外是ASP.NET,其中使用的版本是在IIS管理控制台中指定的。

答案 1 :(得分:2)

只是添加上面的回复:如果您正在谈论asp.net应用程序,它会更改所有播放规则。除了iis管理器中的框架配置选项外,每个应用程序池都会加载框架,因此您必须确保共享应用程序池的所有应用程序都使用相同的框架版本。

答案 2 :(得分:1)

从Visual Studio 2008开始,您可以定位特定版本的.Net Framework - 2.0,3.0或3.5

在VS2008之前,它的固定 -

VS2005的目标是.Net Framework v2.0

VS2003的目标是.Net Framework v1.1

VS2002的目标是.Net Framework v1.0

如果您指定目标,则需要特定版本的.Net Framework。

更正:它将在该版本或更高版本的兼容版本上运行。