Allow NVDA x64 to run on clean installs of Windows#18828
Merged
SaschaCowley merged 3 commits intomasterfrom Aug 28, 2025
Merged
Allow NVDA x64 to run on clean installs of Windows#18828SaschaCowley merged 3 commits intomasterfrom
SaschaCowley merged 3 commits intomasterfrom
Conversation
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR fixes NVDA x64 builds failing to run on clean Windows installations by correcting the architecture-specific copying of Visual C++ Runtime DLLs during the build process.
- Updated build script to copy C Runtime DLLs from the correct architecture directory (x64 vs x86)
- Added
vcruntime140_1.dllto the list of required runtime libraries for x64 builds - Maintained backward compatibility by excluding
vcruntime140_1.dllfor x86 builds
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Member
Author
|
I believe the reason that we did not see this in CI is because the Windows Server 2025 and Windows Server 2022 GitHub Actions runners include Visual C++ runtimes. The runtime is also installed by a lot of other programs, so it is likely that a machine that has been used for a while already includes the runtime. |
seanbudd
reviewed
Aug 28, 2025
seanbudd
approved these changes
Aug 28, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Link to issue number:
Fixes #18827
Summary of the issue:
On clean copies of Windows (such as Windows Sandbox), 64 bit builds of NVDA fail to run.
Description of user facing changes:
These builds now run.
Description of developer facing changes:
None.
Description of development approach:
In #18814 (comment) we identified that NVDA wasn't running because
vcruntime140.dllcouldn't be loaded. Inspection of this DLL revealed that it was a PE32 executable.Updated the build script to copy C Runtime DLLs from the appropriate architecture directory based on the build architecture.
Attempted running a 64 bit launcher in Windows Sandbox. NVDA starts but importing
wxfails:After some investigation with procmon and Dependencies I worked out that 64 bit wx requires
vcruntime140_1.dll.Added
vcruntime140_1.dllto the list of C Runtime DLLs to be included in the build. This is deleted if building for x86 as this file doesn't exist for the x86 runtime. I chose to go in this direction as this code is easier to remove when we drop x86 support.Testing strategy:
Built x86 and x86_64 launchers and ran them in separate Windows Sandboxes.
Known issues with pull request:
None
Code Review Checklist: