曙海教育集团论坛开发语言培训专区Microsoft.NET Framework → NET Framework 以及 CLR 版本辨析


  共有4600人关注过本帖树形打印

主题:NET Framework 以及 CLR 版本辨析

美女呀,离线,留言给我吧!
wangxinxin
  1楼 个性首页 | 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:青蜂侠 帖子:1393 积分:14038 威望:0 精华:0 注册:2010-11-12 11:08:23
NET Framework 以及 CLR 版本辨析  发帖心情 Post By:2010-12-15 10:28:50

我们来看看以下 ClrInfo.cs 吧:


using System;
using System.Text;

namespace Skyiv
{
  public class ClrInfo
  {
    static void Main()
    {
      Console.WriteLine("      OS Version: {0}", Environment.OSVersion);
      Console.WriteLine("     CLR Version: {0}  ( {1} )", Environment.Version, RuntimeFramework.CurrentFramework);
      Console.WriteLine("Default Encoding: {0}", Encoding.Default);
      Console.WriteLine();
      Console.WriteLine(typeof(string).AssemblyQualifiedName);
#if !NetFx20
      Console.WriteLine(typeof(System.IO.Packaging.Package).AssemblyQualifiedName);
      Console.WriteLine(typeof(System.TimeZoneInfo).AssemblyQualifiedName);
#endif
      Console.WriteLine();
      Console.WriteLine("Available Frameworks:");
      foreach (var frame in RuntimeFramework.AvailableFrameworks) Console.WriteLine("  " + frame);
    }
  }
}

使用以下 makefile 文件来编译(请参见: 浅谈 make 工具):

CLR35 = C:\Windows\Microsoft.NET\Framework\v3.5
CLR40 = C:\Windows\Microsoft.NET\Framework\v4.0.30319
CSC35 = $(CLR35)\csc.exe
CSC40 = $(CLR40)\csc.exe
SRC1 = ClrInfo.cs RuntimeFramework.cs

ClrInfo20.exe: $(SRC1)
	$(CSC35) -out:$@ $(SRC1) -D:NetFx20

ClrInfo35.exe: $(SRC1)
	$(CSC35) -out:$@ $(SRC1) -r:WindowsBase.dll

ClrInfo40.exe: $(SRC1)
	$(CSC40) -out:$@ $(SRC1) -r:$(CLR40)\WPF\WindowsBase.dll

   使用 nmake.exe 进行编译(所需的 RuntimeFamework.cs 请参见 .NET Framework CLR 版本检测):

E:\CS\ClrInfo> nmake ClrInfo20.exe
Microsoft (R) 程序维护实用工具 9.00.30729.01 版
版权所有(C) Microsoft Corporation。保留所有权利。

C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe -out:ClrInfo20.exe ClrInfo.cs RuntimeFramework.cs -D:NetFx20
适用于 Microsoft(R) .NET Framework 3.5 版的 Microsoft(R) Visual C# 2008 编译器 3.5.30729.1 版
版权所有(C) Microsoft Corporation。保留所有权利。

E:\CS\ClrInfo> nmake ClrInfo35.exe
Microsoft (R) 程序维护实用工具 9.00.30729.01 版
版权所有(C) Microsoft Corporation。保留所有权利。

C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe -out:ClrInfo35.exe ClrInfo.cs RuntimeFramework.cs -r:WindowsBase.dll
适用于 Microsoft(R) .NET Framework 3.5 版的 Microsoft(R) Visual C# 2008 编译器 3.5.30729.1 版
版权所有(C) Microsoft Corporation。保留所有权利。

E:\CS\ClrInfo> nmake ClrInfo40.exe
Microsoft (R) 程序维护实用工具 9.00.30729.01 版
版权所有(C) Microsoft Corporation。保留所有权利。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe -out:ClrInfo40.exe ClrInfo.cs RuntimeFramework.cs
 -r:C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF\WindowsBase.dll
Microsoft (R) Visual C# 2010 Compiler version 4.0.30319.1
Copyright (C) Microsoft Corporation. All rights reserved.

E:\CS\ClrInfo> dir *.exe
2010/04/17  19:59             7,168 ClrInfo20.exe
2010/04/17  19:59             7,168 ClrInfo35.exe
2010/04/17  19:59             7,680 ClrInfo40.exe

  使用 Sun VirtualBox 全新安装 Microsoft Windows Server 2003 R2 Enterprise Edition Service Pack 2 操作系统:

 

  运行 ClrInfo35.exe,结果如下所示:

 

  运行 ClrInfo40.exe,结果如下所示:

 

 

  好吧,让我们安装 Microsoft .NET Framework 2.0 SP2 吧


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

NET Framework 以及 CLR 版本辨析








签名