diff --git a/apps/desktop/build/installer.nsh b/apps/desktop/build/installer.nsh index 8cc9a5c..c4821b5 100644 --- a/apps/desktop/build/installer.nsh +++ b/apps/desktop/build/installer.nsh @@ -1,32 +1,19 @@ ; build/installer.nsh -; electron-builder의 nsis.include로 참조되는 NSIS 커스텀 스크립트. -; 번들 플러그인 의존을 피하기 위해 자동 다운로드는 제거하고 정보성 안내만 수행. +; electron-builder NSIS 커스텀 스크립트. 최소 구성 — 설치 중 크래시 방지를 위해 +; 레지스트리 조회/MessageBox/외부 exec 등은 수행하지 않는다. ; -; 목적: -; 1) Visual C++ 재배포 패키지(x64, 2015-2022) 설치 여부 확인 + 안내 -; 2) 언인스톨 시 번들 Ollama 프로세스 종료 +; VC++ 재배포 패키지는 사용자가 사전 설치하거나, 앱이 실행될 때 에러가 나면 안내. +; 현재는 detail 로그만 남긴다. !macro customInstall - DetailPrint "VC++ 재배포 패키지(x64) 확인 중..." - - ClearErrors - ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64" "Installed" - - ${If} $0 != "1" - MessageBox MB_OK|MB_ICONINFORMATION \ - "Microsoft Visual C++ 재배포 패키지(x64, 2015-2022)가 필요합니다.$\r$\n$\r$\n설치를 계속하되, 앱 첫 실행 시 오류가 나면 아래 링크에서 수동 설치 후 재시도하세요:$\r$\n$\r$\nhttps://aka.ms/vs/17/release/vc_redist.x64.exe" - DetailPrint "VC++ 재배포 미설치 — 사후 수동 설치 안내 표시됨" - ${Else} - DetailPrint "VC++ 재배포 이미 설치됨." - ${EndIf} - + DetailPrint "D3RO Voice installer: custom install phase" ${If} ${FileExists} "$INSTDIR\resources\ollama\ollama.exe" - DetailPrint "번들 Ollama 발견: $INSTDIR\resources\ollama\ollama.exe" + DetailPrint "Bundled Ollama detected" ${EndIf} !macroend !macro customUnInstall - DetailPrint "번들 Ollama 프로세스 종료 시도" + DetailPrint "D3RO Voice uninstaller: stop Ollama if running" nsExec::Exec 'taskkill /F /IM ollama.exe' Pop $0 !macroend diff --git a/apps/desktop/electron-builder.yml b/apps/desktop/electron-builder.yml index 6047bcb..c47282c 100644 --- a/apps/desktop/electron-builder.yml +++ b/apps/desktop/electron-builder.yml @@ -111,6 +111,8 @@ nsis: createStartMenuShortcut: true shortcutName: D3RO Voice deleteAppDataOnUninstall: false - include: build/installer.nsh + # include: build/installer.nsh + # NOTE: customInstall/customUnInstall 매크로가 NSIS System.dll 크래시를 유발한 사례 있어 + # v0.1.0-alpha 단계에선 기본 electron-builder installer 사용. 안정화 후 재활성. npmRebuild: true