fix(windows): look less like malware to antivirus programs: the program is not compressed inside, and its file details say what it is #32
No reviewers
Labels
No labels
area/build
area/install
area/saves
area/ui
area/updates
good first issue
gpu/amd
gpu/intel
gpu/nvidia
help wanted
kind
bug
kind
chore
kind
docs
kind
feature
kind
performance
kind
question
platform/linux
platform/steam-deck
platform/windows
priority
critical
priority
high
priority
low
status
blocked
status
confirmed
status
duplicate
status
invalid
status
needs-info
status
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/LongshotLauncher!32
Loading…
Reference in a new issue
No description provided.
Delete branch "HumanBean/LongshotLauncher:fix/windows-av-false-positive"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Windows flags the launcher as a virus. It isn't one, but it has everything antivirus machine-learning checks look for: an unsigned program that unpacks compressed code into memory when it starts, installs itself, makes shortcuts and replaces itself on update, and whose file details say nothing about what it is. This PR removes the two of those that can be removed without a certificate.
What changed
scripts/package.sh: the Windows program is no longer built withEnableCompressionInSingleFile. A compressed .NET single file unpacks its code into memory at start, which looks like a packed dropper. That's a common cause ofWacatac-style!mldetections on .NET single-file apps.LongshotLauncher-<v>-windows-x64-setup.exegrows from 51 MB to 106 MB, and an installed launcher's self-update downloads 106 MB.dotnet publish -r win-x64on this head, with compression on and off.App/LongshotLauncher.csproj: the program's version resource (Properties → Details) now has real details instead ofLongshotLauncherin every field:These were read back from the published exe's
VERSIONINFOresource; the SDK writes it on Linux too, as it does the icon.Notes
RELEASE_UPLOAD_API(the organization variable Longshot's builders use). It's worth checking the next nightly's publish succeeds.Testing
python -I tests/test_launcher_core.py --longshot <Longshot checkout>: 632 checks passed.python -I tests/test_release.py: OK.bash -n scripts/package.sh: OK.dotnet publish App/LongshotLauncher.csproj -c Release -r win-x64 --self-contained -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=truewith and without compression, for the sizes and the version resource above.🤖 Generated with Claude Code