<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>
    以文本方式查看主題

    -  曙海教育集團(tuán)論壇  (http://www.hufushizhe.com/bbs/index.asp)
    --  Microsoft.NET Framework  (http://www.hufushizhe.com/bbs/list.asp?boardid=78)
    ----  NET Framework 以及 CLR 版本辨析  (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=78&id=2633)

    --  作者:wangxinxin
    --  發(fā)布時(shí)間:2010-12-15 10:28:50
    --  NET Framework 以及 CLR 版本辨析

    我們來看看以下 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 文件來編譯(請(qǐng)參見: 淺談 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 進(jìn)行編譯(所需的 RuntimeFamework.cs 請(qǐng)參見 .NET Framework CLR 版本檢測(cè)):

    E:\\CS\\ClrInfo> nmake ClrInfo20.exe
    Microsoft (R) 程序維護(hù)實(shí)用工具 9.00.30729.01 版
    版權(quán)所有(C) Microsoft Corporation。保留所有權(quán)利。
    
    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 版
    版權(quán)所有(C) Microsoft Corporation。保留所有權(quán)利。
    
    E:\\CS\\ClrInfo> nmake ClrInfo35.exe
    Microsoft (R) 程序維護(hù)實(shí)用工具 9.00.30729.01 版
    版權(quán)所有(C) Microsoft Corporation。保留所有權(quán)利。
    
    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 版
    版權(quán)所有(C) Microsoft Corporation。保留所有權(quán)利。
    
    E:\\CS\\ClrInfo> nmake ClrInfo40.exe
    Microsoft (R) 程序維護(hù)實(shí)用工具 9.00.30729.01 版
    版權(quán)所有(C) Microsoft Corporation。保留所有權(quán)利。
    
    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 操作系統(tǒng):

     

      運(yùn)行 ClrInfo35.exe,結(jié)果如下所示:

     

      運(yùn)行 ClrInfo40.exe,結(jié)果如下所示:

     

     

      好吧,讓我們安裝 Microsoft .NET Framework 2.0 SP2 吧