SmartGantt.Util.MakeInstaller 7.3.1
MakeInstaller
이 프로젝트는 SmartGantt 소프트웨어의 패키징 및 배포 프로세스를 자동화하는 C# 애플리케이션입니다. 설치 파일을 만들고, 릴리스 및 업데이트 파일을 패키징하며, 이를 업데이트 서버에 업로드하는 등의 작업을 처리합니다. Setup 프로젝트 빌드가 성공하면 빌드후 이벤트로 이 프로젝트 결과물(exe)이 실행됩니다.
실행
빌드
- Debug, x64, MakeInstaller를 시작프로젝트로 설정한 후 빌드합니다.
배포 파일 테스트
- Main에서
Upload(),Delete()를 주석처리합니다. Release, x64로 빌드합니다.SmartGanttSetup디렉토리에서MakeInstaller.exe를 실행하여 결과 파일들을 확인합니다.
프로젝트 설정
프로젝트 설정은 VS 솔루션 탐색기에서 프로젝트명을 더블클릭하거나(MakeInstaller.csproj 파일), 우클릭 메뉴 [속성(Alt+Enter)]를 선택하면 확인할 수 있습니다.
빌드 후 이벤트
- Release 빌드 전
RemovePackagegantt-core\nuget디렉토리에 같은 패키지가 존재하면 삭제합니다.
- Release 빌드 후
PostBuilddotnet publish: 애플리케이션을 빌드하지 않고 게시합니다.- publish 결과물을
SmartGanttSetup디렉토리에 복사합니다.
패키지
Nuget 배포시 표시되는 패키지의 정보입니다.
<!-- Release 빌드할때, 빌드가 끝나면 Nuget 패키지를 생성합니다 -->
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
<!-- 패키지 정보 -->
<PropertyGroup>
<ApplicationIcon>app-logo.ico</ApplicationIcon>
<PackageIcon>logo.png</PackageIcon>
<PackageId>SmartGantt.Util.$(AssemblyName)</PackageId>
<Title>$(AssemblyName)</Title>
<Authors>KSTEC</Authors>
<Company>KSTEC</Company>
<Version>7.3.1</Version>
<Product>SmartGantt Make Installer tool</Product>
<Description>SmartGantt 패키지 인스톨러를 만들어줍니다.</Description>
<Copyright>Copyright © 1997. KSTEC Inc.</Copyright>
<PackageProjectUrl></PackageProjectUrl>
<PackageReadmeFile>README.md</PackageReadmeFile>
<RepositoryUrl>https://gitlab.com/kstec/sp7/gantt/gantt-core</RepositoryUrl>
<PackageTags>smartgantt</PackageTags>
<PackageOutputPath>..\nuget\</PackageOutputPath>
</PropertyGroup>
프로세스 흐름
1. 런처 설정 가져오기
애플리케이션은 SmartGantt 런처의 설정 파일을 가져옵니다. 다음과 같은 설정을 사용합니다:
- InstallPairs
- UpdateFiles
- IsAllUpdate
- IsLauncherUpdate
- UpdateExclusionFiles
- UpdateExclusionDirectories
- UploadApi
2. 릴리스 파일 패키징
릴리스 파일들은 ZipFile.CreateFromDirectory 메서드를 사용하여 .zip 파일로 압축됩니다.
3. 설치 파일 생성
릴리스 파일들은 7-Zip을 사용하여 실행 가능한 .exe 설치 파일로 묶입니다. 이 설치 파일은 7-Zip 아카이브와 SFX(Self-Extracting Archive) 모듈을 결합하여 생성됩니다.
4. 업데이트 파일 패키징
업데이트 파일은 전체 업데이트인지 부분 업데이트인지에 따라 다르게 처리됩니다. 파일과 디렉토리를 복사한 후 .zip 파일로 압축되어 업데이트 서버로 업로드됩니다.
5. 파일 업로드
생성된 설치 파일과 업데이트 파일은 업데이트 서버에 업로드됩니다.
6. 파일 삭제
프로세스 동안 생성된 임시 파일들(예: .zip 파일)은 완료 후 삭제됩니다.
No packages depend on SmartGantt.Util.MakeInstaller.
.NET 8.0
- SmartGantt.Util.SmartGanttConfiguration (>= 1.0.0)
- NLog.Extensions.Logging (>= 5.3.8)
- RestSharp (>= 106.13.0)