Version クラス

定義

アセンブリ、オペレーティング システム、または共通言語ランタイムのバージョン番号を表します。 このクラスは継承できません。

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

次の例では、属性を使用して 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.
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 個のコンポーネントで構成されています。 主要なコンポーネントとマイナーコンポーネントが必要です。ビルドコンポーネントとリビジョンコンポーネントは省略可能ですが、リビジョンコンポーネントが定義されている場合はビルドコンポーネントが必要です。 定義されたすべてのコンポーネントは、0以上の整数である必要があります。 バージョン番号の形式は次のとおりです (オプションのコンポーネントは、角かっこ ([および]) で示されています。

majorminor[。ビルド[.リビジョン]]

これらのコンポーネントは、次のように規約によって使用されます。

  • メジャー: 名前は同じでメジャーバージョンが異なるアセンブリは交換できません。 より新しいバージョン番号は、下位互換性を想定できない製品の大きな書き直しを示している場合があります。

  • Minor: 2 つのアセンブリの名前とメジャーバージョン番号が同じでも、マイナーバージョン番号が異なる場合は、下位互換性のために大幅に拡張されていることを示しています。 マイナーバージョン番号の方が、製品のポイントリリースまたは完全に下位互換性のある製品の新しいバージョンを示している可能性があります。

  • ビルド: ビルド番号の違いは、同じソースの再コンパイルを表します。 プロセッサ、プラットフォーム、またはコンパイラが変更されたときに、異なるビルド番号が使用される場合があります。

  • リビジョン: 名前、メジャー、マイナーバージョン番号が同じでもリビジョンが異なるアセンブリは、完全に交換可能であることが意図されています。 以前にリリースされたアセンブリのセキュリティホールを修正するビルドでは、より高いリビジョン番号が使用される場合があります。

ビルド番号またはリビジョン番号のみが異なるアセンブリの後続のバージョンは、以前のバージョンの修正プログラムの更新と見なされます。

重要

Version明示的に値が割り当てられていないプロパティの値は定義されていません (-1)。

.NET Framework 2.0 以降では、プロパティとプロパティを使用して、 MajorRevision MinorRevision アプリケーションの一時的なバージョンを識別できます。たとえば、永続的なソリューションをリリースするまで問題が修正されます。 さらに、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());
    
    ' 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())
    
  • 共通言語ランタイムのバージョンを取得しています。 次の例では、 Environment.Version プロパティを使用して、共通言語ランタイムに関するバージョン情報を取得します。

    // 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())
    
  • 現在のアプリケーションのアセンブリバージョンを取得しています。 次の例では、メソッドを使用して、 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());
       }
    }
    
    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
    
  • 現在のアセンブリのアセンブリバージョンを取得しています。 次の例では、プロパティを使用して、 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());
       }
    }
    
    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
    
  • 特定のアセンブリのバージョンを取得しています。 次の例では、メソッドを使用して、 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());
       }
    }
    
    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 アプリケーションの発行バージョンを取得しています。 次の例では、プロパティを使用して、 ApplicationDeployment.CurrentVersion アプリケーションの発行バージョンを表示します。 実行が成功した場合は、例のアプリケーション id を設定する必要があることに注意してください。 これは、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);
       }
    }
    
    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 展開用のアプリケーションの発行バージョンは、アセンブリのバージョンと完全に独立しています。

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

メソッドを使用し CompareTo て、一方の Version オブジェクトが2番目のオブジェクトよりも前か、同じか、または後かを判断でき 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.
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 ます。 オブジェクトのビルド番号またはリビジョン番号 Version が未定義の場合、その Version オブジェクトは、 Version ビルドまたはリビジョン番号が0に等しいオブジェクトよりも前のものと見なされます。 次の例では、バージョンが定義されていない3つのオブジェクトを比較することによってこれを示し 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
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 クラスの新しいインスタンスを初期化します。

Version(Int32, Int32)

メジャー値とマイナー値を指定して、Version クラスの新しいインスタンスを初期化します。

Version(Int32, Int32, Int32)

メジャー値、マイナー値、およびビルド値を指定して、Version クラスの新しいインスタンスを初期化します。

Version(Int32, Int32, Int32, Int32)

メジャー番号、マイナー番号、ビルド番号、およびリビジョン番号を指定して、Version クラスの新しいインスタンスを初期化します。

Version(String)

指定した文字列を使用して、Version クラスの新しいインスタンスを初期化します。

プロパティ

Build

現在の Version オブジェクトのバージョン番号のビルド構成要素の値を取得します。

Major

現在の Version オブジェクトのバージョン番号のメジャー構成要素の値を取得します。

MajorRevision

リビジョン番号の上位 16 ビットを取得します。

Minor

現在の Version オブジェクトのバージョン番号のマイナー構成要素の値を取得します。

MinorRevision

リビジョン番号の下位 16 ビットを取得します。

Revision

現在の Version オブジェクトのバージョン番号のリビジョン構成要素の値を取得します。

メソッド

Clone()

現在の Version オブジェクトと同じ値を持つ新しい Version オブジェクトを返します。

CompareTo(Object)

指定したオブジェクトと現在の Version オブジェクトを比較し、これらの相対値を示す値を返します。

CompareTo(Version)

指定した Version オブジェクトと現在の Version オブジェクトを比較し、これらの相対値を示す値を返します。

Equals(Object)

指定されたオブジェクトと現在の Version オブジェクトが等しいかどうかを示す値を返します。

Equals(Version)

現在の Version オブジェクトと指定した Version オブジェクトが同じ値を表しているかどうかを示す値を返します。

GetHashCode()

現在の Version オブジェクトのハッシュ コードを返します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

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

バージョン番号を表す文字の指定した読み取り専用のスパンを、等価の Version オブジェクトに変換します。

Parse(String)

バージョン番号の文字列形式を等価の Version オブジェクトに変換します。

ToString()

現在の Version オブジェクトの値を、それと等価な String 形式に変換します。

ToString(Int32)

現在の Version オブジェクトの値を、それと等価な String 形式に変換します。 指定された数は、返される構成要素の数を示します。

TryFormat(Span<Char>, Int32)

このバージョンのインスタンスの書式を文字のスパンに設定しようとします。

TryFormat(Span<Char>, Int32, Int32)

このバージョンのインスタンスの書式を文字のスパンに設定しようとします。

TryParse(ReadOnlySpan<Char>, Version)

バージョン番号を表す文字の指定した読み取り専用スパンから等価の Version オブジェクトへの変換を試行し、変換が成功したかどうかを示す値を返します。

TryParse(String, Version)

バージョン番号の文字列形式から等価の Version オブジェクトへの変換を試行し、変換が成功したかどうかを示す値を返します。

演算子

Equality(Version, Version)

指定した 2 つの Version オブジェクトが等しいかどうかを判断します。

GreaterThan(Version, Version)

最初に指定した Version オブジェクトが 2 番目に指定した Version オブジェクトよりも大きいかどうかを判断します。

GreaterThanOrEqual(Version, Version)

最初に指定した Version オブジェクトが 2 番目に指定した Version オブジェクト以上であるかどうかを判断します。

Inequality(Version, Version)

指定した 2 つの Version オブジェクトが等しくないかどうかを判断します。

LessThan(Version, Version)

最初に指定した Version オブジェクトが 2 番目に指定した Version オブジェクトより小さいかどうかを判断します。

LessThanOrEqual(Version, Version)

最初に指定した Version オブジェクトが 2 番目に指定した Version オブジェクト以下かどうかを判断します。

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

IComparable.CompareTo(Object)

指定したオブジェクトと現在の Version オブジェクトを比較し、これらの相対値を示す値を返します。

IFormattable.ToString(String, IFormatProvider)

指定された書式を使用して現在のインスタンスの値を書式設定します。

ISpanFormattable.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)

現在のインスタンスの値を指定された文字スパンに書式設定します。

適用対象