本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

Version 类

 

表示程序集、操作系统或公共语言运行时的版本号。 此类不能被继承。

命名空间:   System
程序集:  mscorlib(位于 mscorlib.dll)


[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class Version : ICloneable, IComparable, IComparable<Version>, 
	IEquatable<Version>

名称说明
System_CAPS_pubmethodVersion()

初始化 Version 类的新实例。

System_CAPS_pubmethodVersion(Int32, Int32)

初始化的新实例Version类使用指定的主版本号和次值。

System_CAPS_pubmethodVersion(Int32, Int32, Int32)

新实例初始化 Version 类使用指定的主版本号、 次版本号和生成值。

System_CAPS_pubmethodVersion(Int32, Int32, Int32, Int32)

初始化的新实例Version与指定主要的类、 内部版本和修订号。

System_CAPS_pubmethodVersion(String)

使用指定的字符串初始化 Version 类的新实例。

名称说明
System_CAPS_pubpropertyBuild

获取当前的版本号的生成部分的值Version对象。

System_CAPS_pubpropertyMajor

获取当前的版本号的主要部分的值Version对象。

System_CAPS_pubpropertyMajorRevision

获取修订号的高 16 位。

System_CAPS_pubpropertyMinor

获取当前的版本号的次要部分的值Version对象。

System_CAPS_pubpropertyMinorRevision

获取修订号的低 16 位。

System_CAPS_pubpropertyRevision

获取当前的版本号的修订号部分的值Version对象。

名称说明
System_CAPS_pubmethodClone()

返回一个新Version对象,其值是当前相同Version对象。

System_CAPS_pubmethodCompareTo(Object)

比较当前Version与指定的对象的对象并返回对其相对值的指示。

System_CAPS_pubmethodCompareTo(Version)

比较当前Version对象与指定Version对象并返回对其相对值的指示。

System_CAPS_pubmethodEquals(Object)

返回一个值,该值指示是否当前 Version 对象是否等于指定的对象。(覆盖 Object.Equals(Object)。)

System_CAPS_pubmethodEquals(Version)

返回一个值,该值指示是否当前 Version 对象与另一个指定 Version 对象表示相同的值。

System_CAPS_pubmethodGetHashCode()

返回当前哈希代码 Version 对象。(覆盖 Object.GetHashCode()。)

System_CAPS_pubmethodGetType()

获取当前实例的 Type(继承自 Object。)

System_CAPS_pubmethodSystem_CAPS_staticParse(String)

版本号的字符串表示转换为等效Version对象。

System_CAPS_pubmethodToString()

将当前的值转换Version为其等效的对象String表示形式。(覆盖 Object.ToString()。)

System_CAPS_pubmethodToString(Int32)

将当前的值转换Version为其等效的对象String表示形式。 指定的计数指示要返回的部分数。

System_CAPS_pubmethodSystem_CAPS_staticTryParse(String, Version)

尝试将版本号的字符串表示转换为等效Version对象,并返回一个值,指示转换是否成功。

名称说明
System_CAPS_puboperatorSystem_CAPS_staticEquality(Version, Version)

确定两个指定的 Version 对象是否相等。

System_CAPS_puboperatorSystem_CAPS_staticGreaterThan(Version, Version)

确定第一个指定Version对象是否大于第二个指定Version对象。

System_CAPS_puboperatorSystem_CAPS_staticGreaterThanOrEqual(Version, Version)

确定是否指定的第一个 Version 对象是否大于或等于第二个指定 Version 对象。

System_CAPS_puboperatorSystem_CAPS_staticInequality(Version, Version)

确定两个指定的 Version 对象是否不相等。

System_CAPS_puboperatorSystem_CAPS_staticLessThan(Version, Version)

确定第一个指定Version对象是否小于第二个指定Version对象。

System_CAPS_puboperatorSystem_CAPS_staticLessThanOrEqual(Version, Version)

确定是否指定的第一个 Version 对象是否小于或等于第二个 Version 对象。

版本号由二到四个部分组成︰ 主要、 次版本号、 内部版本和修订版本。 主版本号和次组件; 不需要内部版本号和修订组件是可选的但如果定义修订号部分,则需要生成组件。 定义的所有组件都必须大于或等于 0 的整数。 版本号的格式,如下所示是 (可选组件显示在方括号 ([和])︰

major.minor[.build[.修订]]

组件使用约定,如下所示︰

  • 主要︰ 具有相同名称但不同主要版本的程序集不能互换。 更高版本的版本号可能表示无法假定向后兼容性的其中一个产品的主要重写。

  • 次要︰ 如果的名称和在两个程序集上的主版本号相同,但的次版本号是不同,这指示目的是要向后兼容性的显著增强。 产品的点版本或产品的完全向后兼容新版本,则可能表示此更高的次版本号。

  • 生成︰ 生成号的不同表示同一源的重新编译。 处理器、 平台或编译器更改时,可能会使用不同的生成号。

  • 修订︰ 具有相同名称、 主要和次要版本但不同修订号的程序集旨在是完全可互换。 在修复的以前发布的程序集的安全漏洞的版本中可能会使用更高版本的修订号。

只有内部版本号或修订号不同的后续版本的程序集视为可对先前版本的修补程序更新。

System_CAPS_important重要事项

Version尚未显式分配一个值的属性是不确定 (-1)。

从.NET Framework 2.0 开始MajorRevisionMinorRevision属性使你能够识别的应用程序,例如,更正问题,您可以释放永久的解决方案之前的临时版本。 此外,Windows NT 操作系统使用MajorRevision属性进行编码 service pack 编号。

通常,Version类未使用要分配给程序集的版本号。 相反,AssemblyVersionAttribute类用于定义程序集的版本,如本主题中示例所示。

Version对象通常用于存储有关某个系统或应用程序的组件 (如操作系统)、 公共语言运行时,当前应用程序的可执行文件或特定程序集的版本信息。 下面的示例说明了一些最常见的方案︰

  • 检索的操作系统版本。 下面的示例使用OperatingSystem.Version要检索的操作系统的版本号属性。

    // Get the operating system version.
    OperatingSystem os = Environment.OSVersion;
    Version ver = os.Version;
    Console.WriteLine("Operating System: {0} ({1})", os.VersionString, ver.ToString());
    
  • 检索公共语言运行时的版本。 下面的示例使用Environment.Version属性来检索有关公共语言运行时版本信息。

    // Get the common language runtime version.
    Version ver = Environment.Version;
    Console.WriteLine("CLR Version {0}", ver.ToString());
    
  • 检索当前应用程序的程序集版本。 下面的示例使用Assembly.GetEntryAssembly方法来获取对引用Assembly表示应用程序可执行文件,然后检索其程序集版本号的对象。

    using System;
    using System.Reflection;
    
    public class Example
    {
       public static void Main()
       {
          // Get the version of the executing assembly (that is, this assembly).
          Assembly assem = Assembly.GetEntryAssembly();
          AssemblyName assemName = assem.GetName();
          Version ver = assemName.Version;
          Console.WriteLine("Application {0}, Version {1}", assemName.Name, ver.ToString());
       }
    }
    
  • 检索当前程序集的程序集版本。 下面的示例使用Type.Assembly属性来获取对引用Assembly表示包含应用程序入口点,,然后检索其版本信息的程序集的对象。

    using System;
    using System.Reflection;
    
    public class Example
    {
       public static void Main()
       {
          // Get the version of the current assembly.
          Assembly assem = typeof(Example).Assembly;
          AssemblyName assemName = assem.GetName();
          Version ver = assemName.Version;
          Console.WriteLine("{0}, Version {1}", assemName.Name, ver.ToString());
       }
    }
    
  • 检索特定的程序集的版本。 下面的示例使用Assembly.ReflectionOnlyLoadFrom方法来获取对引用Assembly具有特定文件名称,然后检索其版本信息的对象。 请注意其他几种方法,还存在来实例化Assembly按文件名称或强名称的对象。

    using System;
    using System.Reflection;
    
    public class Example
    {
       public static void Main()
       {
          // Get the version of a specific assembly.
          string filename = @".\StringLibrary.dll";
          Assembly assem = Assembly.ReflectionOnlyLoadFrom(filename);
          AssemblyName assemName = assem.GetName();
          Version ver = assemName.Version;
          Console.WriteLine("{0}, Version {1}", assemName.Name, ver.ToString());
       }
    }
    
  • 检索发布 ClickOnce 应用程序的版本。 下面的示例使用ApplicationDeployment.CurrentVersion属性来显示应用程序的发布版本。 请注意,其成功执行要求的示例应用程序标识要设置。 这是由 Visual Studio 发布向导自动处理。

    using System;
    using System.Deployment.Application;
    
    public class Example
    {
       public static void Main()
       {
          Version ver = ApplicationDeployment.CurrentDeployment.CurrentVersion;
          Console.WriteLine("ClickOnce Publish Version: {0}", ver);
       }
    }
    
    System_CAPS_important重要事项

    ClickOnce 部署的应用程序的发布版本是完全独立于其程序集版本。

你可以使用CompareTo方法来确定是否一个Version对象是早于、 等于还是晚于第二个Version对象。 下面的示例指示版本 2.1 是晚于 2.0 版。

Version v1 = new Version(2, 0);
Version v2 = new Version("2.1");
Console.Write("Version {0} is ", v1);
switch(v1.CompareTo(v2))
{
   case 0:
      Console.Write("the same as");
      break;
   case 1:
      Console.Write("later than");
      break;
   case -1:
      Console.Write("earlier than");
      break;
}
Console.WriteLine(" Version {0}.", v2);                  
// The example displays the following output:
//       Version 2.0 is earlier than Version 2.1.

两个版本相等,主要、 次版本、 生成、 版本和修订号的第一个Version对象必须是相同的第二个Version对象。 如果的内部版本号或修订号Version对象是不确定,,Version对象被视为可早于Version对象其生成或修订号等于零。 下面的示例阐释了这一点通过比较三个Version具有未定义的版本组件的对象。

using System;

enum VersionTime {Earlier = -1, Same = 0, Later = 1 };

public class Example
{
   public static void Main()
   {
      Version v1 = new Version(1, 1);
      Version v1a = new Version("1.1.0");
      ShowRelationship(v1, v1a);

      Version v1b = new Version(1, 1, 0, 0);
      ShowRelationship(v1b, v1a);
   }

   private static void ShowRelationship(Version v1, Version v2)
   {
      Console.WriteLine("Relationship of {0} to {1}: {2}", 
                        v1, v2, (VersionTime) v1.CompareTo(v2));       
   }
}
// The example displays the following output:
//       Relationship of 1.1 to 1.1.0: Earlier
//       Relationship of 1.1.0.0 to 1.1.0: Later

下面的示例使用AssemblyVersionAttribute属性要分配给程序集的版本号。 在编译时,系统会与程序集的元数据存储此版本信息。 在运行时,该示例将检索的值Type.Assembly类型上的属性位于要获取对执行的程序集的引用的程序集,以及它检索程序集的版本信息Version属性AssemblyName返回对象Assembly.GetName方法。

using System;
using System.Reflection;

[assembly:AssemblyVersionAttribute("2.0.1")]

public class Example1
{
   public static void Main()
   {
      Assembly thisAssem = typeof(Example1).Assembly;
      AssemblyName thisAssemName = thisAssem.GetName();

      Version ver = thisAssemName.Version;

      Console.WriteLine("This is version {0} of {1}.", ver, thisAssemName.Name);    
   }
}
// The example displays the following output:
//        This is version 2.0.1.0 of Example1.

通用 Windows 平台
自 8 起可用
.NET Framework
自 1.1 起可用
可移植类库
可移植 .NET 平台 中受支持
Silverlight
自 2.0 起可用
Windows Phone Silverlight
自 7.0 起可用
Windows Phone
自 8.1 起可用

此类型的所有公共静态(Visual Basic 中的 已共享 在 Visual Basic 中)成员都是线程安全的。不保证所有实例成员都是线程安全的。

返回页首
显示: