AssemblyVersionAttribute 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
특성이 지정된 어셈블리의 버전을 지정합니다.
public ref class AssemblyVersionAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)]
public sealed class AssemblyVersionAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)]
public sealed class AssemblyVersionAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class AssemblyVersionAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)>]
type AssemblyVersionAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)>]
type AssemblyVersionAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type AssemblyVersionAttribute = class
inherit Attribute
Public NotInheritable Class AssemblyVersionAttribute
Inherits Attribute
- 상속
- 특성
예제
다음 예제에서는 특성을 사용하여 AssemblyVersionAttribute 어셈블리에 버전 번호를 할당합니다. 컴파일 시 이 버전 정보는 어셈블리의 메타데이터와 함께 저장됩니다. 런타임에 이 예제는 실행 중인 어셈블리에 대한 참조를 가져오기 위해 어셈블리에 있는 형식의 속성 값을 Type.Assembly 검색하고 메서드에서 반환된 Assembly.GetName 개체의 속성에서 Version 어셈블리의 AssemblyName 버전 정보를 검색합니다.
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.
설명
이 AssemblyVersionAttribute 특성은 어셈블리에 버전 번호를 할당하는 데 사용됩니다. 그런 다음 해당 버전 번호가 어셈블리의 메타데이터와 함께 저장됩니다.
어셈블리 버전 번호는 어셈블리 ID의 일부이며 어셈블리에 바인딩하고 버전 정책에서 핵심적인 역할을 합니다. 런타임에 대한 기본 버전 정책은 구성 파일(애플리케이션 구성 파일, 게시자 정책 파일 및 컴퓨터의 관리자 구성 파일)에서 명시적 버전 정책으로 재정의되지 않는 한 애플리케이션이 빌드 및 테스트된 버전에서만 실행되는 것입니다. 자세한 내용은 .NET의 어셈블리 를 참조하세요.
메모
버전 검사는 강력한 이름의 어셈블리에서만 발생합니다.
버전 번호에는 다음과 같이 네 부분으로 구성됩니다.
<주 버전>.<부 버전>.<빌드 번호>.<수정>
중요합니다
버전의 모든 구성 요소는 0보다 크거나 같은 정수여야 합니다. 메타데이터는 어셈블리의 주, 부, 빌드 및 수정 구성 요소를 최대값 UInt16.MaxValue 인 1로 제한합니다. 구성 요소가 이 값을 초과하면 컴파일 오류가 발생합니다.
예를 들어 [assembly:AssemblyVersion("2.3.25.1")] 2를 주 버전으로, 3을 부 버전으로, 25를 빌드 번호로, 1을 수정 번호로 나타냅니다.
이 AssemblyVersionAttribute 특성을 사용하면 빌드 또는 수정 번호 대신 별표(*)를 지정할 수 있습니다. 버전 번호는 [assembly:AssemblyVersion("1.2.*")] 주 버전으로 1, 부 버전으로 2를 지정하고 기본 빌드 및 수정 번호를 허용합니다. 버전 번호는 [assembly:AssemblyVersion("1.2.15.*")] 1을 주 버전으로, 2를 부 버전으로, 15를 빌드 번호로 지정하고 기본 수정 번호를 허용합니다. 기본 빌드 번호는 매일 증가합니다. 기본 수정 번호는 현지 시간 자정 이후 시간(일광 절약 시간 조정을 고려하지 않고)을 2로 나눈 시간(초)입니다. 빌드 번호의 별표는 수정 번호를 지정할 수 없습니다.
중요합니다
AssemblyVersionAttribute 별표 지정 특성 사용:
- 빌드 출력을 재현할 수 없게 만듭니 다(재현 가능한 빌드 참조). 프로젝트가 빌드 속성을 오류
CS8357로true설정하는Deterministic경우 컴파일러가 보고합니다. - 빌드가 컴파일러 출력을 캐싱하지 못하게 하므로 빌드 성능이 저하될 수 있습니다.
- 편집 및 계속 및 핫 다시 로드 기능과 호환되지 않습니다.
다음과 같이 조건부 컴파일을 사용하여 빌드를 릴리스하는 데 시간 기반 버전의 사용을 제한하여 이러한 문제 중 일부를 완화할 수 있습니다.
#if DEBUG
[assembly: AssemblyVersion("1.0.0.0")]
#else
[assembly: AssemblyVersion("1.0.*")]
#endif
버전 관리의 더 나은 방법은 커밋 SHA(git 리포지토리의 경우)에서 HEAD 어셈블리 또는 파일 버전을 파생시키는 것입니다. 예를 들어 Nerdbank.GitVersioning을 참조하세요.
어셈블리 주 버전과 부 버전은 어셈블리를 내보낼 때 형식 라이브러리 버전 번호로 사용됩니다. 일부 COM 호스트는 버전 번호가 0.0인 형식 라이브러리를 허용하지 않습니다. 따라서 COM 클라이언트에 어셈블리를 노출하려는 경우 Visual Studio 2005 AssemblyVersionAttribute 외부에서 생성되고 지정되지 않은 AssemblyVersionAttribute 프로젝트의 경우 페이지에서 어셈블리 버전을 명시적으로 1.0으로 설정합니다. 어셈블리 버전이 0.0인 경우에도 이 작업을 수행합니다. Visual Studio 2005에서 만든 모든 프로젝트에는 기본 어셈블리 버전이 1.0.*입니다.
로드한 어셈블리의 이름을 얻으려면 어셈블리를 호출 GetName 하여 해당 AssemblyName속성을 가져옵니다 Version . 로드하지 않은 어셈블리의 이름을 얻으려면 클라이언트 애플리케이션에서 호출 GetAssemblyName 하여 애플리케이션에서 사용하는 어셈블리 버전을 확인합니다.
특성은 AssemblyVersionAttribute 한 번만 적용할 수 있습니다. 일부 Visual Studio 프로젝트 템플릿에는 이미 특성이 포함되어 있습니다. 이러한 프로젝트에서 코드에 특성을 추가하면 컴파일러 오류가 발생합니다.
생성자
| Name | Description |
|---|---|
| AssemblyVersionAttribute(String) |
특성이 지정된 어셈블리의 |
속성
| Name | Description |
|---|---|
| TypeId |
파생 클래스에서 구현되는 경우 이 Attribute대한 고유 식별자를 가져옵니다. (다음에서 상속됨 Attribute) |
| Version |
특성이 지정된 어셈블리의 버전 번호를 가져옵니다. |
메서드
| Name | Description |
|---|---|
| Equals(Object) |
이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다. (다음에서 상속됨 Attribute) |
| GetHashCode() |
이 인스턴스의 해시 코드를 반환합니다. (다음에서 상속됨 Attribute) |
| GetType() |
현재 인스턴스의 Type 가져옵니다. (다음에서 상속됨 Object) |
| IsDefaultAttribute() |
파생 클래스에서 재정의되는 경우 이 인스턴스의 값이 파생 클래스의 기본값인지 여부를 나타냅니다. (다음에서 상속됨 Attribute) |
| Match(Object) |
파생 클래스에서 재정의되는 경우 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다. (다음에서 상속됨 Attribute) |
| MemberwiseClone() |
현재 Object단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
| ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다. (다음에서 상속됨 Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다. (다음에서 상속됨 Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1). (다음에서 상속됨 Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
개체에 의해 노출되는 속성 및 메서드에 대한 액세스를 제공합니다. (다음에서 상속됨 Attribute) |