Rss & SiteMap

曙海教育集团论坛 http://www.bjzhda.cn

曙海教育集团论坛
共1 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
wangxinxin 发表于: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 吧

共1 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2009 曙海教育集团
Powered By 曙海教育集团 Version 2.2
Processed in .03125 s, 2 queries.