5.9 KiB
원본 Cuts/Res 런타임 배치
기준 원본
원본 저장소는 읽기 전용이며 다음 개발 출력만 런타임 자산 기준으로 사용한다.
C:\Users\MD\source\repos\MBN_STOCK_N\MBN_STOCK_N\bin\Debug
├─ Cuts
└─ Res
Visual Studio가 시작하는 프로젝트는
src\MBN_STOCK_WEBVIEW.LegacyParityApp\MBN_STOCK_WEBVIEW.LegacyParityApp.csproj다.
이 프로젝트는 원본 경로가 존재하는 전체 빌드에서 파일을 저장소 안으로 복제하지 않고 외부
Content로 연결해 실행 파일 옆의 다음 구조를 만든다.
MBN_STOCK_WEBVIEW.LegacyParityApp.exe
Cuts\...
Res\...
Web\...
소스 전용 빌드와 전체 자산 빌드
기본 LegacyRuntimeAssetsMode는 Auto다.
- 기본 형제 경로에 원본이 있으면 모든 필수 자산을 검증하고 전체 자산 빌드를 만든다.
- 원본이 없는 새 Git clone의 Debug/F5는 빌드를 막지 않고 소스 전용 DryRun을 만든다.
- 원본 경로를 명시하거나 Release MSIX를 만들면 기본값이
Required로 바뀌어 누락 자산을 다시 오류로 차단한다.
소스 전용 앱은 내장 컷/UI 목록으로 화면 검토가 가능하고 DB는 미연결 상태로 표시한다.
과거 로컬 송출 프로필, 운영자 송출·배경 경로, 프로세스 환경 override와 Development Live 실행
인수는 사용하지 않고 안전한 DryRun 기본값을 강제한다. 출력과 중간 패키징 파일은 이전 전체 빌드의
자산이나 MmoneyCoder.ini를 재사용하지 않도록 다음 별도 경로에 생성된다.
src\MBN_STOCK_WEBVIEW.LegacyParityApp\bin\SourceOnly\...
src\MBN_STOCK_WEBVIEW.LegacyParityApp\obj\SourceOnly\...
원본 경로가 다른 장비에서 전체 기능을 빌드하려면 다음 속성으로 bin\Debug 위치를 지정한다.
명시한 경로는 자동으로 Required 취급된다.
/p:LegacyRuntimeSourceRoot="D:\path\to\MBN_STOCK_N\MBN_STOCK_N\bin\Debug"
필수 폴더와 Cuts\5001.t2s, 주요 UI INI가 없으면 전체 자산 빌드는 원인을 표시하고 중단한다.
경로 탐색이나 CI에서 소스 전용 동작을 명시적으로 확인할 때만 다음 조합을 사용할 수 있다.
이는 전체 기능 또는 배포 승인용 빌드가 아니다.
/p:LegacyRuntimeAssetsMode=Auto
Git에는 Cuts, DB 자격증명, 벤더 DLL, 라이선스, 인증서 또는 로컬 구성을 추가하지 않는다.
Cuts
Cuts의 179개 파일과 하위 구조를 출력·게시·MSIX에 그대로 배치한다. 환경 변수, 사용자 설정
메뉴의 디자인 폴더, playout 로컬 JSON의 sceneDirectory가 모두 비어 있고 실행 파일 옆
Cuts가 있으면 그 경로를 자동으로 사용한다. 장면 루트의 우선순위는 환경 변수, 사용자 설정,
playout 로컬 JSON, 실행 파일 옆 기본 폴더 순이다.
현재 원본의 Cuts\Video는 비어 있다. 따라서 다음 외부 영상은 이 복사만으로 생기지 않는다.
s5006의Video\큐브배경.vrvs6001의 국가별Video\20201008_<국가>.vrv13개- 원본 코드가 참조하는 일부 기본/스튜디오
.vrv배경
이 파일은 임의 대체물을 만들지 않고 원 제작 자산을 확보할 때까지 해당 장면의 자산 검사에서 명시적으로 누락 처리한다.
사용자 설정 메뉴
좌측 메뉴 하단의 설정에서는 네이티브 폴더 선택 창으로 디자인(Cuts) 폴더, 설정(Res)
폴더와 선택 사항인 운영 배경 폴더를 직접 지정할 수 있다. 선택한 고정 로컬 폴더는 필수 파일,
카탈로그 형식과 reparse 여부를 검증한 뒤 다음 앱 전용 파일에 저장한다.
%LOCALAPPDATA%\MBN_STOCK_WEBVIEW\Config\runtime-folders.local.json
폴더 변경과 기본값 복원은 자동 저장되지만 런타임 자산과 카탈로그에는 앱을 다시 시작한 뒤
적용된다. 같은 화면의 왼쪽 메뉴 펼쳐서 시작은 즉시 화면에 반영되고 다음 시작 상태도 위 파일에
저장된다. 절대 경로는 Web 콘텐츠에 전달하지 않는다.
이 화면은 자산 위치, 메뉴 시작 상태와 선택한 Res 안의 검증된 DB 프로필 위치만 관리한다.
DB 자격증명의 내용은 표시하거나 직접 편집하지 않는다. Release/default DryRun, KTAP 호스트·
포트·채널, Test/Live 게이트, scene allowlist와 벤더 해시는 보호 설정으로 유지되며 폴더를 선택해도
완화되거나 변경되지 않는다.
Res와 DB 설정
UI 이미지와 UI용 INI는 allowlist로 출력·게시·MSIX에 배치한다. 앱은 실행 시 이 파일들을 CP949 레거시 형식으로 읽고, 파일의 section/row/order를 기존의 폐쇄형 C# action catalog와 대조한 뒤 UI를 구성한다. INI가 임의의 scene/action을 새로 추가할 수는 없다.
MmoneyCoder.ini는 실제 자격증명을 포함하므로 빌드 입력, 출력, 개발 인수용 런타임
묶음과 MSIX Content에 넣지 않는다. 전체 자산 Debug 빌드도 깨끗한 개발 PC와 같은 다음
사용자 전용 로컬 overlay 또는 Config\database.local.json을 사용한다.
%LOCALAPPDATA%\MBN_STOCK_WEBVIEW\Res\MmoneyCoder.ini
사용자 설정 메뉴에서 별도 Res 폴더를 선택했고 그 안에 MmoneyCoder.ini가 있으면 앱은 저장
전에 형식을 네이티브에서 검증하고 다음 시작부터 그 DB 설정을 우선 사용한다. 파일 내용과
자격증명은 Web 화면에 노출하지 않으며 화면에서 직접 편집할 수도 없다. 단, one-shot Gate A
검증 실행에서는 이 사용자 선택을 무시하고 검증 계획에 고정된 database.local.json만 사용한다.
MmoneyCoder - 복사본.ini, .bak, .zip, afiedt.buf.txt는 런타임 소비자가 없고 과거
자격증명 또는 SQL 흔적을 담을 수 있어 어떤 출력/패키지에도 넣지 않는다. 실제 자산과 설정은
Git 추적 대상이 아니다.