.NET, 어셈블리 및 속성에 대한 AssemblyVersion, AssemblyFileVersion 및 AssemblyInformationalVersion의 차이점

2024-07-27

  • AssemblyVersion: 이 속성은 어셈블리의 공개 API 버전을 나타냅니다. 다른 어셈블리가 이 어셈블리를 참조할 때 AssemblyVersion을 사용하여 호환성을 확인합니다. AssemblyVersion은 주요 버전 번호, 부 버전 번호, 수정 버전 번호 및 빌드 번호로 구성됩니다. 예를 들어 1.2.3.4와 같습니다.
  • AssemblyFileVersion: 이 속성은 어셈블리 파일의 버전을 나타냅니다. 운영 체제는 AssemblyFileVersion을 사용하여 파일 시스템에서 어셈블리를 식별합니다. AssemblyFileVersion은 주요 버전 번호, 부 버전 번호, 수정 버전 번호 및 빌드 번호로 구성됩니다. AssemblyVersion과 동일한 형식이지만 일반적으로 AssemblyVersion보다 더 높은 값을 갖습니다. 예를 들어 1.2.3.10과 같습니다.
  • AssemblyInformationalVersion: 이 속성은 어셈블리에 대한 정보 버전을 나타냅니다. 이 속성은 어셈블리의 저작자, 저작권 및 기타 정보를 포함할 수 있습니다. AssemblyInformationalVersion은 자유 형식 문자열입니다. 예를 들어 1.2.3-beta, Copyright © 2024 Acme Corporation과 같습니다.

요약

속성설명용도
AssemblyVersion공개 API 버전다른 어셈블리와의 호환성 확인
AssemblyFileVersion파일 버전운영 체제에서 파일 식별
AssemblyInformationalVersion정보 버전저작자, 저작권 및 기타 정보 포함



C# 예제 코드: AssemblyVersion, AssemblyFileVersion 및 AssemblyInformationalVersion 설정

using System.Reflection;

[assembly: AssemblyVersion("1.2.3.4")]
[assembly: AssemblyFileVersion("1.2.3.10")]
[assembly: AssemblyInformationalVersion("1.2.3-beta, Copyright © 2024 Acme Corporation")]

namespace MyAssembly
{
    public class Program
    {
        static void Main(string[] args)
        {
            // 어셈블리 정보 가져오기
            Assembly assembly = Assembly.GetExecutingAssembly();

            // AssemblyVersion 출력
            Console.WriteLine("Assembly Version: {0}", assembly.GetName().Version);

            // AssemblyFileVersion 출력
            Console.WriteLine("Assembly File Version: {0}", assembly.GetFileVersion());

            // AssemblyInformationalVersion 출력
            Console.WriteLine("Assembly Informational Version: {0}", assembly.GetInformationalVersion());
        }
    }
}

이 코드를 실행하면 다음과 같은 출력이 생성됩니다.

Assembly Version: 1.2.3.4
Assembly File Version: 1.2.3.10
Assembly Informational Version: 1.2.3-beta, Copyright © 2024 Acme Corporation

이 예제에서는 AssemblyVersion, AssemblyFileVersion 및 AssemblyInformationalVersion 속성을 직접 설정했습니다. Visual Studio와 같은 IDE를 사용하여 이러한 속성을 자동으로 설정할 수도 있습니다.




.NET, 어셈블리 및 속성에서 AssemblyVersion, AssemblyFileVersion 및 AssemblyInformationalVersion을 설정하는 대체 방법

방법 1: 어셈블리 정보 특성 파일 사용

가장 일반적인 방법은 AssemblyInfo.cs라는 특별한 파일을 사용하는 것입니다. 이 파일에 다음과 같은 속성을 추가하여 AssemblyVersion, AssemblyFileVersion 및 AssemblyInformationalVersion을 설정할 수 있습니다.

[assembly: AssemblyVersion("1.2.3.4")]
[assembly: AssemblyFileVersion("1.2.3.10")]
[assembly: AssemblyInformationalVersion("1.2.3-beta, Copyright © 2024 Acme Corporation")]

Visual Studio와 같은 IDE는 일반적으로 AssemblyInfo.cs 파일을 자동으로 생성합니다. 이 파일을 직접 편집하거나 IDE의 속성 페이지를 사용하여 속성 값을 설정할 수 있습니다.

방법 2: 코드에서 직접 설정

어셈블리 정보 특성 파일을 사용하지 않고 코드에서 직접 AssemblyVersion, AssemblyFileVersion 및 AssemblyInformationalVersion 속성을 설정할 수도 있습니다. 다음과 같이 AssemblyName 클래스를 사용하여 수행할 수 있습니다.

AssemblyName assemblyName = new AssemblyName("MyAssembly");
assemblyName.Version = new Version(1, 2, 3, 4);
assemblyName.Version = new Version(1, 2, 3, 10); // AssemblyFileVersion
assemblyName.InformationalVersion = "1.2.3-beta, Copyright © 2024 Acme Corporation";

Assembly.Load(assemblyName);

이 코드는 어셈블리 이름, 버전 및 정보 버전을 포함하는 AssemblyName 개체를 만듭니다. 그런 다음 Assembly.Load 메서드를 사용하여 어셈블리를 로드합니다.

방법 3: NuGet 패키지 사용

NuGet 패키지를 사용하여 AssemblyVersion, AssemblyFileVersion 및 AssemblyInformationalVersion 속성을 설정할 수도 있습니다. 이를 위해서는 다음과 같은 NuGet 패키지 중 하나를 사용할 수 있습니다.

이러한 패키지는 프로젝트 파일에 추가할 수 있으며 어셈블리 정보 속성을 자동으로 설정하는 데 사용할 수 있습니다.

어떤 방법을 사용해야 할까요?

어떤 방법을 사용할지는 프로젝트의 요구 사항에 따라 다릅니다. AssemblyInfo.cs 파일을 사용하는 것이 가장 일반적이고 간단한 방법이지만 코드에서 직접 설정하거나 NuGet 패키지를 사용하는 것이 더 유연할 수 있습니다.


.net assemblies attributes



C#, .NET, LINQ를 사용한 DataTable 쿼리 프로그래밍

LINQ to DataSet을 사용하여 DataTable을 쿼리할 수 있습니다.AsEnumerable() 메서드 사용: DataTable을 IEnumerable<DataRow> 인터페이스를 구현하는 개체로 변환합니다...


C#에서 기본 생성자 호출에 대한 심층 설명

C#에서 기본 생성자 호출은 객체 지향 프로그래밍의 핵심 개념인 상속과 밀접한 관련이 있습니다. 상속을 통해 만들어진 자식 클래스는 부모 클래스의 특성을 물려받게 되는데, 이때 부모 클래스의 초기화를 위해 기본 생성자를 호출하는 것이 필수적입니다...


.NET에서 구조체(struct)와 클래스(class)의 차이점

1. 값 형식 vs 참조 형식:구조체: 값 형식으로, 변수에는 값 자체가 저장됩니다. 즉, 구조체 변수를 복사하면 새로운 값의 복사본이 만들어집니다.클래스: 참조 형식으로, 변수에는 객체의 메모리 위치를 참조하는 값이 저장됩니다...


C#을 사용하여 .NET을 통해 Gmail로 이메일 보내기

필수 조건:Gmail 계정.NET Framework가 설치된 컴퓨터Visual Studio 또는 기타 C# 개발 도구단계:Gmail 앱 비밀번호 생성: Gmail 계정에 로그인합니다. "보안" 탭을 클릭합니다. "앱 비밀번호"를 선택합니다...


C#, .NET 및 Reflection을 사용하여 코드가 있는 어셈블리 경로 가져오기

1. Assembly. GetExecutingAssembly() 사용:이 방법은 가장 간단하고 일반적으로 사용되는 방법입니다. 다음 코드와 같이 사용됩니다.이 코드는 현재 실행 중인 어셈블리의 위치를 가져옵니다. 이 방법은 대부분의 경우 충분하지만 다음과 같은 몇 가지 제한 사항이 있습니다...



.net assemblies attributes

C#, .NET, DateTime을 이용한 나이 계산

해결 방법:DateTime 타입 변수 선언: 생일을 저장할 DateTime 타입 변수 birthday를 선언합니다. 예시: DateTime birthday = new DateTime(1990, 1, 1);DateTime 타입 변수 선언:


C#에서 사전을 값으로 정렬하는 방법

1. Linq 사용하기LINQ(Language Integrated Query)는 C#에 내장된 기능으로, 데이터 쿼리 및 변환을 쉽게 수행할 수 있도록 합니다. 사전을 값으로 정렬하려면 다음과 같은 코드를 사용할 수 있습니다


C#, .NET 및 성능과 관련된 Type에서 새 개체 인스턴스를 만드는 방법

1. new 키워드 사용:위 코드는 MyClass 형식의 새 인스턴스를 myObject 변수에 할당합니다. new 키워드는 메모리에 새 개체를 할당하고 해당 클래스의 생성자를 호출합니다.2. Activator 클래스 사용:


C#에서 String과 string의 차이점

1. String 클래스String은 . NET Framework의 기본 문자열 클래스입니다. 문자열 데이터를 다루기 위한 다양한 메서드와 속성을 제공하며, 다음과 같은 특징을 가집니다.불변: String 객체는 생성 후 변경할 수 없습니다


Entity Framework 대 LINQ to SQL: .NET 프로그래밍 비교

1. 개요LINQ to SQL:2008년 . NET Framework 3.5에 도입된 최초의 . NET ORMSQL Server에만 국한비교적 단순하고 사용하기 쉬움Visual Studio 디자이너 도구 제공2008년