.NET, 어셈블리 및 속성에 대한 AssemblyVersion, AssemblyFileVersion 및 AssemblyInformationalVersion의 차이점
- 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