-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Get bundled DLLs off the user's PATH #9797
Copy link
Copy link
Open
Labels
bugSomething isn't working.Something isn't working.os:windowsWindows-specific behavior, regressions, or requests.Windows-specific behavior, regressions, or requests.repro:mediumThe report suggests a plausible repro path, but some uncertainty remains.The report suggests a plausible repro path, but some uncertainty remains.triagedIssue has received an initial automated triage pass.Issue has received an initial automated triage pass.warp:prioritizedIssues prioritized by the Warp team.Issues prioritized by the Warp team.
Metadata
Metadata
Assignees
Labels
bugSomething isn't working.Something isn't working.os:windowsWindows-specific behavior, regressions, or requests.Windows-specific behavior, regressions, or requests.repro:mediumThe report suggests a plausible repro path, but some uncertainty remains.The report suggests a plausible repro path, but some uncertainty remains.triagedIssue has received an initial automated triage pass.Issue has received an initial automated triage pass.warp:prioritizedIssues prioritized by the Warp team.Issues prioritized by the Warp team.
Warp on Windows' installer offers to add the Warp installation dir to
%PATH%. This is because that is wherewarp.exeis and we want users to be able to invoke the CLI. However, there is a problem with this. I see errors like this in our update logs in Sentry:"Delta Force" is not an anti-virus or anything that has anything to do with Warp. It's a video game. We have unrelated programs loading our vcruntime DLL. When we try to auto-update Warp, Inno Setup attempts to over-write
vcruntime140.dlland that fails b/c something is using it.This is happening b/c
vcruntime140.dllis on the%PATH%, which is not just for executable resolution on Windows but also DLLs. We should therefore not be adding a dir to%PATH%with so much stuff in it just for giving access to the Warp CLI.VSCode handles this by nesting its CLI entrypoint into a
bin/subdir within its installation dir. It adds$env:LOCALAPPDATA\Programs\Microsoft\VSCode\binto%PATH%and users invoke$env:LOCALAPPDATA\Programs\Microsoft\VSCode\bin\codewhich is essentially a "trampoline script" which in turn calls the real executable which lives directly in$env:LOCALAPPDATA\Programs\Microsoft\VSCode\vscode.exe.We have 2 options:
bin/subdir with a similar trampoline script.Linear: APP-3700