버전 관리 데모
CD(지속적인 배포)를 사용하거나 사용하지 않고 .NET Core 프로젝트 버전을 지정하는 방법의 예
이 사이트를 복제하고 디버그 및 릴리스 모드에서 로컬로 실행하면 다른 결과가 표시됩니다. https://versioningdemos.azurewebsites.net/에서 라이브 버전을 방문할 수 있습니다. 이는 내 Git 및 VSTS를 통과하여 버전 정보를 생성합니다.
Microsoft는 자체 .Net 라이브러리 내에서 서로 다른 버전 관리 전략을 가지고 있음을 알 수 있습니다. 아마도 동일한 팀이 아닐 것입니다.
.NET Core 어셈블리 내에서는 일반적으로 3가지 버전이 참조됩니다.
- 파일 버전 - 나중에 어떤 DLL이 있는지 확인하는 데 사용됩니다.
- 일반적으로 Major.Minor.Build.Revision으로 간주되는 xybr 패턴이 있습니다.
- 제품 버전 - 어셈블리 내의 InformationalVersion이라고도 합니다. 이는 설명 목적으로 사용되는 자유 형식 텍스트 버전입니다.
- 현재 이 형식은 Semantic Versioning 패턴(GitHub에서 제시)을 따르는 경향이 있습니다.
- xyp-buildinfo Major.Minor.Patch[-메타데이터]
- semver.org에서 자세한 내용을 읽을 수 있습니다.
- 어셈블리 버전 - 어셈블리 버전
버전 정보를 검색하기 위해 볼 수 있는 일반적인 방법은 일부 사용 사례에서만 작동하며 라이브러리에 배치하면 작동하지 않습니다.
버전 샘플 프로젝트
이러한 프로젝트는 모두 AssemblyInfo.cs 또는 project.json을 사용했던 이전 기술 대신 .vbproj(.csproj일 수도 있음) 파일을 사용합니다.
설정된 항목 없음 - 기본값
값 설정 - 수동
Visual Studio UI 사용(프로젝트 속성/패키지)
- 이를 사용하여 정보를 설정하지 않더라도 계산된 값이 표시됩니다.
- 실수로 다른 곳에서 계산된 값을 무시하지 않도록 주의하세요.
-
.csproj
편집
모든 값 설정 - Manual.AllDifferent
- 비주얼 스튜디오 UI 사용
-
.csproj
편집
VersionPrefix - VersionPrefix를 사용하세요.
버전Suffix - 버전Suffix
BuildRevision - BuildRevision
- roslyn의 버전 패턴 로직을 구현하여 빌드 및 개정 와일드카드 복제
- csproj 파일의 계산을 사용합니다.
BuildDateTime - BuildDateTime
- x.YYYY.MDD.HHMM을 사용하여 자동화된 값 생성
Visual Studio Team Services 빌드 - VSTS
- VSTS에서 구성된 BUILDNUMBER를 VersionSuffix에 추가합니다.
Git 분기를 사용하여 Visual Studio Team Services 빌드 - VSTS.WithGit
- Version Suffix에도 Git 브랜치를 추가하세요.
태그헬퍼
Taghelpers를 사용할 때 몇 가지 문제점이 있습니다.
- 페이지가 예상한 것과 다른 어셈블리에 배치됩니다.
- 디버그 또는 릴리스에서 실행하면 다른 값과 생성된 어셈블리가 제공될 수 있습니다.
- TagHelper를 외부 라이브러리에 넣으면 현재 실행 중인 어셈블리의 결과가 변경됩니다.