.isproj는 공유 설정만, 버전마다 <이름>.versions/<버전>.isver(제품 버전·설명·ProductCode·잠금·파일 규칙·레지스트리·바로가기·설치화면). 파일 이름과 버전 불일치 VersionFileMismatch, 이전 단일 버전 EXE 형식은 자동 변환 없이 거부
새 EXE 프로젝트는 버전 없이 시작. 설치 구성은 항상 버전 목록(버전·종류·ProductCode·설명)을 먼저 표시, 버전이 없으면 "*기존 버전이 없습니다. 신규버전을 만드세요."
버전 추가 팝업(만들기/취소): 첫 버전은 빈 메이저 버전, 이후는 선택한 버전 복사(설명은 비움)
표 오른쪽 바깥 아이콘: 자물쇠(눌러서 잠금/해제), 저장 전 표시, 휴지통 삭제
삭제: 확인 후 목록에서 제거, 저장 시 <버전>.isver.bak으로 이동. 잠긴 버전은 휴지통 숨김, 패치가 사용하는 메이저는 VersionInUse
버전 화면: 위쪽 막대 오른쪽 잠금/잠금 해제 버튼, 사이드바 설치 구성을 다시 누르면 목록으로 복귀. 일반 탭에 버전 종류·ProductCode·설명(1000자 이하, DescriptionTooLong)
저장: 버전 파일별 리비전 비교(RevisionConflict), 잠긴 버전 내용 변경 거부(VersionLocked), 바뀐 파일만 .isver.bak 보관 후 다시 쓰기
저장 왕복·충돌·잠금·삭제(백업 이동, 잠긴 버전, VersionInUse)·설명 길이(문자 수 기준)·복사 시 설명 초기화 테스트와 목록·팝업·머리글 렌더링 테스트 통과.
범위
버전별 EXE 빌드는 구현하지 않았다. 변경 기록: docs/changes/2026-11-09-exe-version-files.md.
## 목적
EXE 프로젝트에서 버전마다 설치 내용을 따로 관리하고, 배포한 버전을 잠가 보호한다.
## 반영 내용
- `.isproj`는 공유 설정만, 버전마다 `<이름>.versions/<버전>.isver`(제품 버전·설명·ProductCode·잠금·파일 규칙·레지스트리·바로가기·설치화면). 파일 이름과 버전 불일치 `VersionFileMismatch`, 이전 단일 버전 EXE 형식은 자동 변환 없이 거부
- 새 EXE 프로젝트는 버전 없이 시작. 설치 구성은 항상 버전 목록(버전·종류·ProductCode·설명)을 먼저 표시, 버전이 없으면 "*기존 버전이 없습니다. 신규버전을 만드세요."
- 버전 추가 팝업(만들기/취소): 첫 버전은 빈 메이저 버전, 이후는 선택한 버전 복사(설명은 비움)
- 표 오른쪽 바깥 아이콘: 자물쇠(눌러서 잠금/해제), 저장 전 표시, 휴지통 삭제
- 삭제: 확인 후 목록에서 제거, 저장 시 `<버전>.isver.bak`으로 이동. 잠긴 버전은 휴지통 숨김, 패치가 사용하는 메이저는 `VersionInUse`
- 버전 화면: 위쪽 막대 오른쪽 잠금/잠금 해제 버튼, 사이드바 설치 구성을 다시 누르면 목록으로 복귀. 일반 탭에 버전 종류·ProductCode·설명(1000자 이하, `DescriptionTooLong`)
- 저장: 버전 파일별 리비전 비교(`RevisionConflict`), 잠긴 버전 내용 변경 거부(`VersionLocked`), 바뀐 파일만 `.isver.bak` 보관 후 다시 쓰기
- `schemas/exe-version.schema.json`, fixture `ExeInitialVersion.isver`, 예제 `exe.1.0.0.isver`
## 검증
저장 왕복·충돌·잠금·삭제(백업 이동, 잠긴 버전, VersionInUse)·설명 길이(문자 수 기준)·복사 시 설명 초기화 테스트와 목록·팝업·머리글 렌더링 테스트 통과.
## 범위
버전별 EXE 빌드는 구현하지 않았다. 변경 기록: `docs/changes/2026-11-09-exe-version-files.md`.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
목적
EXE 프로젝트에서 버전마다 설치 내용을 따로 관리하고, 배포한 버전을 잠가 보호한다.
반영 내용
.isproj는 공유 설정만, 버전마다<이름>.versions/<버전>.isver(제품 버전·설명·ProductCode·잠금·파일 규칙·레지스트리·바로가기·설치화면). 파일 이름과 버전 불일치VersionFileMismatch, 이전 단일 버전 EXE 형식은 자동 변환 없이 거부<버전>.isver.bak으로 이동. 잠긴 버전은 휴지통 숨김, 패치가 사용하는 메이저는VersionInUseDescriptionTooLong)RevisionConflict), 잠긴 버전 내용 변경 거부(VersionLocked), 바뀐 파일만.isver.bak보관 후 다시 쓰기schemas/exe-version.schema.json, fixtureExeInitialVersion.isver, 예제exe.1.0.0.isver검증
저장 왕복·충돌·잠금·삭제(백업 이동, 잠긴 버전, VersionInUse)·설명 길이(문자 수 기준)·복사 시 설명 초기화 테스트와 목록·팝업·머리글 렌더링 테스트 통과.
범위
버전별 EXE 빌드는 구현하지 않았다. 변경 기록:
docs/changes/2026-11-09-exe-version-files.md.