C#

C# Customize File Version (feat 파일버전을 날짜로)

sheepone 2022. 1. 20. 17:18
반응형
현재 날짜와 시간으로 사용된 예제

 

 

컴파일시에 자동으로 파일버전을 증가하고 싶은데 기존의 형식이 마음에 들지 않을때 사용.
마지막 컴파일한 날짜와 시간을 사용.

파일 버전 : 2022년 1월 20일 16시 37분

 


 

# 적용방법

 

 

Assemblyinfo.cs 파일 삭제(Delete)

 


 

 

추가 새항목 Assembly.tt

 


 

 

추가된 Assembly.tt

 


 

# 코드 내용 (Assembly.tt)

 

<#@ template language="C#" hostspecific="true" #>

using System.Reflection;

[assembly: AssemblyVersion("<#=DateTime.Now.Year#>.<#=DateTime.Now.ToString("MM")#>.<#=DateTime.Now.ToString("dd")#>.<#=DateTime.Now.ToString("HHmm")#>")]

 

이제 빌드 하시면 위 형식대로 파일버전이 입력됩니다.

 


 

여기까지 하면 초기에 한번은 파일이 생성되어 적용 되는데 이후에는 다시 생성되지 않습니다.

매번 코드를 생성하기 위해 프로퍼티 - 빌드 이벤트 - 빌드 이벤트 명령줄 대화상자에 아래 내용을 입력 합니다.

 

 

"$(DevEnvDir)TextTransform.exe" -out "$(ProjectDir)Properties\Assembly.cs" "$(ProjectDir)Properties\Assembly.tt"

 


 

# 예제파일첨부

 

WindowsFormsApp12.zip
0.28MB

 


 

# 추가 서브버전 사용시 체크아웃 문제

 

 

Assembly.tt와 Assembly.cs 파일이 체크아웃되어 지속적으로 괴롭히는 상황이 생길수 있다.

빌드 이벤트 구성을 릴리즈일때만 적용되게 하여 평소에 체크아웃 되는 상황을 피할수 있다.

 

 

빌드 이벤트 내용

 

if $(ConfigurationName) == Debug goto :debug
:release
"$(DevEnvDir)TextTransform.exe" -out "$(ProjectDir)Properties\Assembly.cs" "$(ProjectDir)Properties\Assembly.tt"
goto :exit

:debug

:exit

 

반응형