; MediaBrowser(구 VideoDownloader) Windows 설치자 (Inno Setup) ; publish.ps1 이 /DARCH=x64 또는 /DARCH=arm64 로 2회 컴파일 → out/MediaBrowser-Setup-.exe ; 배포명만 MediaBrowser 로 개명 — AppId(GUID)·실행 파일명·데이터 경로는 유지해 기존 설치 업그레이드 호환. #define APP_NAME "MediaBrowser" #define APP_PUBLISHER "MediaBrowser" #define APP_EXE "VideoDownloader.exe" #ifndef APP_VERSION #define APP_VERSION "1.0.0" #endif #ifndef ARCH #error ARCH must be defined (x64 or arm64) via /DARCH= #endif [Setup] AppName={#APP_NAME} AppVersion={#APP_VERSION} AppPublisher={#APP_PUBLISHER} UninstallDisplayIcon={app}\{#APP_EXE} DefaultDirName={autopf}\{#APP_NAME} DefaultGroupName={#APP_NAME} DisableProgramGroupPage=yes ; per-user 설치 → {autopf} = %LocalAppData%\Programs, UAC 없음 PrivilegesRequired=lowest PrivilegesRequiredOverridesAllowed=dialog OutputDir=..\out WizardStyle=modern Compression=lzma2 SolidCompression=yes ArchitecturesInstallIn64BitMode=x64compatible #if ARCH == "arm64" ; arm64 전용(네이티브). x64 머신에선 거부. ArchitecturesAllowed=arm64 AppId={{2E0ADFC1-2072-4457-8C50-ECFCEDECAD73} OutputBaseFilename=MediaBrowser-Setup-arm64 #else ; x64 + arm64(x64 에뮬레이션 폴백) 어디서든 설치 가능한 범용 설치자. ArchitecturesAllowed=x64compatible AppId={{65393C7D-17DC-4B9F-9D0B-F9911092C449} OutputBaseFilename=MediaBrowser-Setup-x64 #endif [Languages] Name: "korean"; MessagesFile: "compiler:Languages\Korean.isl" Name: "english"; MessagesFile: "compiler:Default.isl" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] ; self-contained publish 결과 전체를 앱 디렉터리로 복사 Source: "{#PUBLISH_DIR}\*"; DestDir: "{app}"; Flags: recursesubdirs createallsubdirs ignoreversion [Icons] Name: "{group}\{#APP_NAME}"; Filename: "{app}\{#APP_EXE}" Name: "{group}\{#APP_NAME} 제거"; Filename: "{uninstallexe}" Name: "{commondesktop}\{#APP_NAME}"; Filename: "{app}\{#APP_EXE}"; Tasks: desktopicon [Run] Filename: "{app}\{#APP_EXE}"; Description: "{cm:LaunchProgram,{#APP_NAME}}"; Flags: nowait postinstall skipifsilent