Version クラス

定義

アセンブリ、オペレーティング システム、または共通言語ランタイムのバージョン番号を表します。Represents the version number of an assembly, operating system, or the common language runtime. このクラスは継承できません。This class cannot be inherited.

public ref class Version sealed : ICloneable, IComparable, IComparable<Version ^>, IEquatable<Version ^>
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class Version : ICloneable, IComparable, IComparable<Version>, IEquatable<Version>
type Version = class
    interface ICloneable
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
Public NotInheritable Class Version
Implements ICloneable, IComparable, IComparable(Of Version), IEquatable(Of Version)
継承
Version
属性
実装

次の例では、AssemblyVersionAttribute 属性を使用して、アセンブリにバージョン番号を割り当てています。The following example uses the AssemblyVersionAttribute attribute to assign a version number to an assembly. コンパイル時に、このバージョン情報はアセンブリのメタデータと共に格納されます。At compile time, this version information is stored with the assembly's metadata. 実行時に、この例では、アセンブリ内の型の Type.Assembly プロパティの値を取得して、実行中のアセンブリへの参照を取得します。また、次のようにして返された AssemblyName オブジェクトの Version プロパティからアセンブリのバージョン情報を取得します。Assembly.GetName メソッド。At run time, the example retrieves the value of the Type.Assembly property on a type found in the assembly to get a reference to the executing assembly, and it retrieves the assembly's version information from the Version property of the AssemblyName object returned by the Assembly.GetName method.

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.
Imports System.Reflection

<Assembly:AssemblyVersionAttribute("2.0.1")>
Module Example1
   Public Sub Main()
       Dim thisAssem As Assembly = GetType(Example1).Assembly
       Dim thisAssemName As AssemblyName = thisAssem.GetName()
       
       Dim ver As Version = thisAssemName.Version
       
       Console.WriteLine("This is version {0} of {1}.", ver, thisAssemName.Name)    
   End Sub
End Module
' The example displays the following output:
'      This is version 2.0.1.0 of Example1.

注釈

バージョン番号は、メジャー、マイナー、ビルド、リビジョンの 2 ~ 4 個のコンポーネントで構成されています。Version numbers consist of two to four components: major, minor, build, and revision. 主要なコンポーネントとマイナーコンポーネントが必要です。ビルドコンポーネントとリビジョンコンポーネントは省略可能ですが、リビジョンコンポーネントが定義されている場合はビルドコンポーネントが必要です。The major and minor components are required; the build and revision components are optional, but the build component is required if the revision component is defined. 定義されたすべてのコンポーネントは、0以上の整数である必要があります。All defined components must be integers greater than or equal to 0. バージョン番号の形式は次のとおりです (オプションのコンポーネントは、角かっこ ([および]) で示されています。The format of the version number is as follows (optional components are shown in square brackets ([ and ]):

majorminor[。ビルド[.リビジョン]]major.minor[.build[.revision]]

これらのコンポーネントは、次のように規約によって使用されます。The components are used by convention as follows:

  • メジャー: 名前は同じでメジャーバージョンが異なるアセンブリは交換できません。Major: Assemblies with the same name but different major versions are not interchangeable. より新しいバージョン番号は、下位互換性を想定できない製品の大きな書き直しを示している場合があります。A higher version number might indicate a major rewrite of a product where backward compatibility cannot be assumed.

  • Minor: 2 つのアセンブリの名前とメジャーバージョン番号が同じでも、マイナーバージョン番号が異なる場合は、下位互換性のために大幅に拡張されていることを示しています。Minor: If the name and major version number on two assemblies are the same, but the minor version number is different, this indicates significant enhancement with the intention of backward compatibility. マイナーバージョン番号の方が、製品のポイントリリースまたは完全に下位互換性のある製品の新しいバージョンを示している可能性があります。This higher minor version number might indicate a point release of a product or a fully backward-compatible new version of a product.

  • ビルド: ビルド番号の違いは、同じソースの再コンパイルを表します。Build: A difference in build number represents a recompilation of the same source. プロセッサ、プラットフォーム、またはコンパイラが変更されたときに、異なるビルド番号が使用される場合があります。Different build numbers might be used when the processor, platform, or compiler changes.

  • リビジョン: 名前、メジャー、マイナーバージョン番号が同じでもリビジョンが異なるアセンブリは、完全に交換可能であることが意図されています。Revision: Assemblies with the same name, major, and minor version numbers but different revisions are intended to be fully interchangeable. 以前にリリースされたアセンブリのセキュリティホールを修正するビルドでは、より高いリビジョン番号が使用される場合があります。A higher revision number might be used in a build that fixes a security hole in a previously released assembly.

ビルド番号またはリビジョン番号のみが異なるアセンブリの後続のバージョンは、以前のバージョンの修正プログラムの更新と見なされます。Subsequent versions of an assembly that differ only by build or revision numbers are considered to be Hotfix updates of the prior version.

重要

値が明示的に割り当てられていない Version のプロパティの値は定義されていません (-1)。The value of Version properties that have not been explicitly assigned a value is undefined (-1).

.NET Framework 2.0 以降では、MajorRevisionMinorRevision のプロパティを使用して、永続的なソリューションをリリースするまで問題を修正するなど、アプリケーションの一時的なバージョンを識別できます。Starting with .NET Framework 2.0, the MajorRevision and MinorRevision properties enable you to identify a temporary version of your application that, for example, corrects a problem until you can release a permanent solution. さらに、Windows NT オペレーティングシステムでは、MajorRevision プロパティを使用して Service Pack 数をエンコードします。Furthermore, the Windows NT operating system uses the MajorRevision property to encode the service pack number.

アセンブリへのバージョン情報の割り当てAssigning Version Information to Assemblies

通常、Version クラスは、アセンブリにバージョン番号を割り当てるためには使用されません。Ordinarily, the Version class is not used to assign a version number to an assembly. 代わりに、このトピックの例に示すように、AssemblyVersionAttribute クラスを使用してアセンブリのバージョンを定義します。Instead, the AssemblyVersionAttribute class is used to define an assembly's version, as illustrated by the example in this topic.

バージョン情報の取得Retrieving Version Information

Version オブジェクトは、システムまたはアプリケーションコンポーネント (オペレーティングシステムなど)、共通言語ランタイム、現在のアプリケーションの実行可能ファイル、または特定のアセンブリに関するバージョン情報を格納するために最も頻繁に使用されます。Version objects are most frequently used to store version information about some system or application component (such as the operating system), the common language runtime, the current application's executable, or a particular assembly. 次の例では、最も一般的なシナリオをいくつか示します。The following examples illustrate some of the most common scenarios:

  • オペレーティングシステムのバージョンを取得しています。Retrieving the operating system version. 次の例では、OperatingSystem.Version プロパティを使用して、オペレーティングシステムのバージョン番号を取得します。The following example uses the OperatingSystem.Version property to retrieve the version number of the operating system.

    // Get the operating system version.
    OperatingSystem os = Environment.OSVersion;
    Version ver = os.Version;
    Console.WriteLine("Operating System: {0} ({1})", os.VersionString, ver.ToString());
    
    ' Get the operating system version.
    Dim os As OperatingSystem = Environment.OSVersion
    Dim ver As Version = os.Version
    Console.WriteLine("Operating System: {0} ({1})", os.VersionString, ver.ToString())
    
  • 共通言語ランタイムのバージョンを取得しています。Retrieving the version of the common language runtime. 次の例では、Environment.Version プロパティを使用して、共通言語ランタイムに関するバージョン情報を取得します。The following example uses the Environment.Version property to retrieve version information about the common language runtime.

    // Get the common language runtime version.
    Version ver = Environment.Version;
    Console.WriteLine("CLR Version {0}", ver.ToString());
    
    ' Get the common language runtime version.
    Dim ver As Version = Environment.Version
    Console.WriteLine("CLR Version {0}", ver.ToString())
    
  • 現在のアプリケーションのアセンブリバージョンを取得しています。Retrieving the current application's assembly version. 次の例では、Assembly.GetEntryAssembly メソッドを使用して、アプリケーションの実行可能ファイルを表す Assembly オブジェクトへの参照を取得し、そのアセンブリのバージョン番号を取得します。The following example uses the Assembly.GetEntryAssembly method to obtain a reference to an Assembly object that represents the application executable and then retrieves its assembly version number.

    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());
       }
    }
    
    Imports System.Reflection
    
    Module Example
       Public Sub Main()
          ' Get the version of the executing assembly (that is, this assembly).
          Dim assem As Assembly = Assembly.GetEntryAssembly()
          Dim assemName As AssemblyName = assem.GetName()
          Dim ver As Version = assemName.Version
          Console.WriteLine("Application {0}, Version {1}", assemName.Name, ver.ToString())
       End Sub
    End Module
    
  • 現在のアセンブリのアセンブリバージョンを取得しています。Retrieving the current assembly's assembly version. 次の例では、Type.Assembly プロパティを使用して、アプリケーションのエントリポイントを含むアセンブリを表す Assembly オブジェクトへの参照を取得し、そのバージョン情報を取得します。The following example uses the Type.Assembly property to obtain a reference to an Assembly object that represents the assembly that contains the application entry point, and then retrieves its version information.

    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());
       }
    }
    
    Imports System.Reflection
    
    Module Example
       Public Sub Main()
          ' Get the version of the current assembly.
          Dim assem As Assembly = GetType(Example).Assembly
          Dim assemName As AssemblyName = assem.GetName()
          Dim ver As Version = assemName.Version
          Console.WriteLine("{0}, Version {1}", assemName.Name, ver.ToString())            VB
       End Sub
    End Module
    
  • 特定のアセンブリのバージョンを取得しています。Retrieving the version of a specific assembly. 次の例では、Assembly.ReflectionOnlyLoadFrom メソッドを使用して、特定のファイル名を持つ Assembly オブジェクトへの参照を取得し、そのバージョン情報を取得します。The following example uses the Assembly.ReflectionOnlyLoadFrom method to obtain a reference to an Assembly object that has a particular file name, and then retrieves its version information. ファイル名または厳密な名前で Assembly オブジェクトをインスタンス化するために、他のいくつかのメソッドも存在することに注意してください。Note that several other methods also exist to instantiate an Assembly object by file name or by strong name.

    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());
       }
    }
    
    Imports System.Reflection
    
    Module Example
       Public Sub Main()
          ' Get the version of a specific assembly.
          Dim filename As String = ".\StringLibrary.dll"
          Dim assem As Assembly = Assembly.ReflectionOnlyLoadFrom(filename)
          Dim assemName As AssemblyName = assem.GetName()
          Dim ver As Version = assemName.Version
          Console.WriteLine("{0}, Version {1}", assemName.Name, ver.ToString())
       End Sub
    End Module
    
  • ClickOnce アプリケーションの発行バージョンを取得しています。Retrieving the Publish Version of a ClickOnce application. 次の例では、ApplicationDeployment.CurrentVersion プロパティを使用して、アプリケーションの発行バージョンを表示します。The following example uses the ApplicationDeployment.CurrentVersion property to display an application's Publish Version. 実行が成功した場合は、例のアプリケーション id を設定する必要があることに注意してください。Note that its successful execution requires the example's application identity to be set. これは、Visual Studio の発行ウィザードによって自動的に処理されます。This is handled automatically by the Visual Studio Publish Wizard.

    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);
       }
    }
    
    Imports System.Deployment.Application
    
    Module Example
       Public Sub Main()
          Dim ver As Version = ApplicationDeployment.CurrentDeployment.CurrentVersion
          Console.WriteLine("ClickOnce Publish Version: {0}", ver)
       End Sub
    End Module
    

    重要

    ClickOnce 配置用のアプリケーションの発行バージョンは、アセンブリバージョンと完全に独立しています。The Publish Version of an application for ClickOnce deployment is completely independent of its assembly version.

バージョンオブジェクトの比較Comparing Version Objects

CompareTo メソッドを使用して、1つの Version オブジェクトが2番目の Version オブジェクトよりも前か、同じか、または後かを判断できます。You can use the CompareTo method to determine whether one Version object is earlier than, the same as, or later than a second Version object. 次の例では、バージョン2.1 がバージョン2.0 よりも後であることを示しています。The following example indicates that Version 2.1 is later than Version 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.
Dim v1 As New Version(2,0)
Dim v2 As New Version("2.1")
Console.Write("Version {0} is ", v1)
Select Case v1.CompareTo(v2)
   Case 0
      Console.Write("the same as")
   Case 1
      Console.Write("later than")
   Case -1
      Console.Write("earlier than")
End Select
Console.WriteLine(" Version {0}.", v2)                  
' The example displays the following output:
'       Version 2.0 is earlier than Version 2.1.

2つのバージョンが等しい場合は、最初の Version オブジェクトのメジャー、マイナー、ビルド、およびリビジョン番号が、2番目の Version オブジェクトと同じである必要があります。For two versions to be equal, the major, minor, build, and revision numbers of the first Version object must be identical to those of the second Version object. Version オブジェクトのビルド番号またはリビジョン番号が未定義の場合、その Version オブジェクトは、ビルドまたはリビジョン番号が0に等しい Version オブジェクトよりも前のものと見なされます。If the build or revision number of a Version object is undefined, that Version object is considered to be earlier than a Version object whose build or revision number is equal to zero. 次の例では、定義されていないバージョンのコンポーネントを持つ3つの Version オブジェクトを比較することで、これを示します。The following example illustrates this by comparing three Version objects that have undefined version components.

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
Public Enum VersionTime
   Earlier = -1
   Same = 0
   Later = 1
End Enum

Module Example
   Public Sub Main()
      Dim v1 As New Version(1, 1)
      Dim v1a As New Version("1.1.0")
      ShowRelationship(v1, v1a)
      
      Dim v1b As New Version(1, 1, 0, 0)
      ShowRelationship(v1b, v1a)
   End Sub

   Private Sub ShowRelationship(v1 As Version, v2 As Version)
      Console.WriteLine("Relationship of {0} to {1}: {2}", 
                        v1, v2, CType(v1.CompareTo(v2), VersionTime))       
   End Sub
End Module
' 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

コンストラクター

Version()

Version クラスの新しいインスタンスを初期化します。Initializes a new instance of the Version class.

Version(Int32, Int32)

メジャー値とマイナー値を指定して、Version クラスの新しいインスタンスを初期化します。Initializes a new instance of the Version class using the specified major and minor values.

Version(Int32, Int32, Int32)

メジャー値、マイナー値、およびビルド値を指定して、Version クラスの新しいインスタンスを初期化します。Initializes a new instance of the Version class using the specified major, minor, and build values.

Version(Int32, Int32, Int32, Int32)

メジャー番号、マイナー番号、ビルド番号、およびリビジョン番号を指定して、Version クラスの新しいインスタンスを初期化します。Initializes a new instance of the Version class with the specified major, minor, build, and revision numbers.

Version(String)

指定した文字列を使用して、Version クラスの新しいインスタンスを初期化します。Initializes a new instance of the Version class using the specified string.

プロパティ

Build

現在の Version オブジェクトのバージョン番号のビルド構成要素の値を取得します。Gets the value of the build component of the version number for the current Version object.

Major

現在の Version オブジェクトのバージョン番号のメジャー構成要素の値を取得します。Gets the value of the major component of the version number for the current Version object.

MajorRevision

リビジョン番号の上位 16 ビットを取得します。Gets the high 16 bits of the revision number.

Minor

現在の Version オブジェクトのバージョン番号のマイナー構成要素の値を取得します。Gets the value of the minor component of the version number for the current Version object.

MinorRevision

リビジョン番号の下位 16 ビットを取得します。Gets the low 16 bits of the revision number.

Revision

現在の Version オブジェクトのバージョン番号のリビジョン構成要素の値を取得します。Gets the value of the revision component of the version number for the current Version object.

メソッド

Clone()

現在の Version オブジェクトと同じ値を持つ新しい Version オブジェクトを返します。Returns a new Version object whose value is the same as the current Version object.

CompareTo(Object)

指定したオブジェクトと現在の Version オブジェクトを比較し、これらの相対値を示す値を返します。Compares the current Version object to a specified object and returns an indication of their relative values.

CompareTo(Version)

指定した Version オブジェクトと現在の Version オブジェクトを比較し、これらの相対値を示す値を返します。Compares the current Version object to a specified Version object and returns an indication of their relative values.

Equals(Object)

指定されたオブジェクトと現在の Version オブジェクトが等しいかどうかを示す値を返します。Returns a value indicating whether the current Version object is equal to a specified object.

Equals(Version)

現在の Version オブジェクトと指定した Version オブジェクトが同じ値を表しているかどうかを示す値を返します。Returns a value indicating whether the current Version object and a specified Version object represent the same value.

GetHashCode()

現在の Version オブジェクトのハッシュ コードを返します。Returns a hash code for the current Version object.

GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
Parse(ReadOnlySpan<Char>)

バージョン番号を表す文字の指定した読み取り専用のスパンを、等価の Version オブジェクトに変換します。Converts the specified read-only span of characters that represents a version number to an equivalent Version object.

Parse(String)

バージョン番号の文字列形式を等価の Version オブジェクトに変換します。Converts the string representation of a version number to an equivalent Version object.

ToString()

現在の Version オブジェクトの値を、それと等価な String 形式に変換します。Converts the value of the current Version object to its equivalent String representation.

ToString(Int32)

現在の Version オブジェクトの値を、それと等価な String 形式に変換します。Converts the value of the current Version object to its equivalent String representation. 指定された数は、返される構成要素の数を示します。A specified count indicates the number of components to return.

TryFormat(Span<Char>, Int32)

このバージョンのインスタンスの書式を文字のスパンに設定しようとします。Tries to format this version instance into a span of characters.

TryFormat(Span<Char>, Int32, Int32)

このバージョンのインスタンスの書式を文字のスパンに設定しようとします。Tries to format this version instance into a span of characters.

TryParse(ReadOnlySpan<Char>, Version)

バージョン番号を表す文字の指定した読み取り専用スパンから等価の Version オブジェクトへの変換を試行し、変換が成功したかどうかを示す値を返します。Tries to convert the specified read-only span of characters representing a version number to an equivalent Version object, and returns a value that indicates whether the conversion succeeded.

TryParse(String, Version)

バージョン番号の文字列形式から等価の Version オブジェクトへの変換を試行し、変換が成功したかどうかを示す値を返します。Tries to convert the string representation of a version number to an equivalent Version object, and returns a value that indicates whether the conversion succeeded.

演算子

Equality(Version, Version)

指定した 2 つの Version オブジェクトが等しいかどうかを判断します。Determines whether two specified Version objects are equal.

GreaterThan(Version, Version)

最初に指定した Version オブジェクトが 2 番目に指定した Version オブジェクトよりも大きいかどうかを判断します。Determines whether the first specified Version object is greater than the second specified Version object.

GreaterThanOrEqual(Version, Version)

最初に指定した Version オブジェクトが 2 番目に指定した Version オブジェクト以上であるかどうかを判断します。Determines whether the first specified Version object is greater than or equal to the second specified Version object.

Inequality(Version, Version)

指定した 2 つの Version オブジェクトが等しくないかどうかを判断します。Determines whether two specified Version objects are not equal.

LessThan(Version, Version)

最初に指定した Version オブジェクトが 2 番目に指定した Version オブジェクトより小さいかどうかを判断します。Determines whether the first specified Version object is less than the second specified Version object.

LessThanOrEqual(Version, Version)

最初に指定した Version オブジェクトが 2 番目に指定した Version オブジェクト以下かどうかを判断します。Determines whether the first specified Version object is less than or equal to the second Version object.

明示的なインターフェイスの実装

IComparable.CompareTo(Object)

指定したオブジェクトと現在の Version オブジェクトを比較し、これらの相対値を示す値を返します。Compares the current Version object to a specified object and returns an indication of their relative values.

適用対象