Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Depends on archaic rcinfo node module #179

Open
gregcotten opened this issue Mar 7, 2024 · 1 comment
Open

Depends on archaic rcinfo node module #179

gregcotten opened this issue Mar 7, 2024 · 1 comment

Comments

@gregcotten
Copy link

As described, this project depends on rcinfo to extract the main executable's VERSIONINFO to then apply to the stub executable via rcedit.

Unfortunately if the host machine doesn't have the (unsupported since 2020) "Visual Studio 2010 (VC++ 10.0) SP1" redistributables installed (for x86!!! x64 doesn't fix this, watch out), the VERSIONINFO will silently fall back to the Electron app's package metadata.

This is a good fallback but it unfortunately makes an incorrect assumption about what "File Version" should be. electron-packager uses the buildVersion packagerConfig property for the "File Version" of the vended executable, while electron-wix-msi falls back to the appVersion (aka "Product Version" in Windows).

@gregcotten
Copy link
Author

gregcotten commented Mar 7, 2024

I'd make a PR over on rcinfo, but that project hasn't been touched in 9 years and the ShowVer.exe binary it ships with is 22 years old at this point.

Also, this issue only affects folks who have been successfully vending MSIs for a product and are now updating their runners in a way that causes rcinfo to no longer work and silently fail in this project.

I think the silent fail happens because getFileInfo(...) somehow doesn't throw an exception and instead returns an empty dictionary.

function getFileInfo(exePath: string): Promise<RcInfo> {

This is what I mean by the incorrect assumption for the fallback:

"file-version": rcInfo?.FileVersion || version,

For an electron app, the FileVersion from the main executable is not always going to be the same as version - it's going to be, by default, the appVersion, and if buildVersion is specified in the packagerConfig, it will be whatever that is.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant