diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fff5309f..f78bf49f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -391,6 +391,15 @@ jobs: npm install --global node-gyp@10.2.0 npm prefix -g | % {npm config set node_gyp "$_\node_modules\node-gyp\bin\node-gyp.js"} + - name: Download Visual C++ Redistributable + shell: bash + run: | + if [ "$ARCH" = "arm64" ]; then + curl -sSL -o build/vc_redist.exe "https://aka.ms/vs/17/release/vc_redist.arm64.exe" + else + curl -sSL -o build/vc_redist.exe "https://aka.ms/vs/17/release/vc_redist.x64.exe" + fi + ls -la build/vc_redist.exe - name: Build shell: powershell run: | diff --git a/build/installer.nsh b/build/installer.nsh index 436a37eb..adeb0c6b 100644 --- a/build/installer.nsh +++ b/build/installer.nsh @@ -1,3 +1,15 @@ !macro customInit nsExec::Exec '"$LOCALAPPDATA\tabby\Update.exe" --uninstall -s' !macroend + +!macro customInstall + ; Install Visual C++ Redistributable if vcruntime140.dll is missing. + ; Native modules (node-pty) require it; without it Tabby shows the + ; splash screen but the terminal never loads. See #10734, #10782. + IfFileExists "$SYSDIR\vcruntime140.dll" vcredist_installed + DetailPrint "Installing Visual C++ Redistributable..." + File /oname=$PLUGINSDIR\vc_redist.exe "${BUILD_RESOURCES_DIR}\vc_redist.exe" + ExecWait '"$PLUGINSDIR\vc_redist.exe" /install /quiet /norestart' $1 + DetailPrint "Visual C++ Redistributable exit code: $1" + vcredist_installed: +!macroend