-
-
Notifications
You must be signed in to change notification settings - Fork 3.4k
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
[Windows] The WiX-based installer is always 32-bit, even for 64-bit builds #4795
Comments
pandoc.wxs has:
<?if $(sys.BUILDARCH)=x64?>
<?define ProgFilesFolder="ProgramFiles64Folder"?>
<?else?>
<?define ProgFilesFolder="ProgramFilesFolder"?>
<?endif?>
My assumption was that this would set the appropriate
Program Files directory for the architecture. Are you
saying that this setting is being overridden by
"redirection"? I'm not sure I understand why: does
msiexec assume that a 32-bit installer must be
installing a 32-bit program?
The other question is why the msi is 32-bit. We
produce these on appveyor. WiX is installed there
via chocolatey. My understanding is that chocolatey
should install 64-bit programs on a 64-bit machine,
since there's an option to override this behavior,
but maybe that's not so? Is there something we can
do to make the msi 64-bit?
(Sorry, I have to rely on the wisdom of others to
produce the Windows package -- I don't use Windows
myself.)
FaultyRAM <notifications@github.com> writes:
… 32-bit MSIs have different semantics from 64-bit ones, mainly to do with "redirection". On 64-bit Windows you have `Program Files (x86)` for 32-bit programs, and `Program Files` for 64-bit programs; if you try installing to either one, msiexec detects this and redirects to the "correct" folder. Since we have a 32-bit installer that bundles 64-bit binaries, Pandoc ends up being installed to the wrong folder. There's no way to override this behaviour short of modifying the registry, but as a workaround you can pass a shortened path to the .msi, as these aren't subject to redirection:
```
.\pandoc-2.2.2.1-windows-x86_64.msi /passive ALLUSERS=1 APPLICATIONFOLDER="C:\Progra~1\Pandoc"
```
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
#4795
|
We need some more information here, or I'll have to close this issue. |
I am not expert of MSI stuff but I reproduced 64-bit installer tries to install to
from here I clicked "Advanced" and: this page may be a hint?: https://stackoverflow.com/questions/50012385/how-do-i-make-a-64-bit-msi |
Thanks: I tried a minimal change: using Unfortunately I can't easily test, so I'd appreciate if someone else could. |
@FaultyRAM (or anyone else): I've made various changes to the way the packages are built, and it would be great if someone could test to see if this issue remains. 64-bit msi can be found here: https://ci.appveyor.com/project/jgm/pandoc/build/1.0.2784/job/cxhar61y1jf3ytkh/artifacts |
Tested it just now on my 64-bit Windows machine. It defaults to |
32-bit MSIs have different semantics from 64-bit ones, mainly to do with "redirection". On 64-bit Windows you have
Program Files (x86)
for 32-bit programs, andProgram Files
for 64-bit programs; if you try installing to either one, msiexec detects this and redirects to the "correct" folder. Since we have a 32-bit installer that bundles 64-bit binaries, Pandoc ends up being installed to the wrong folder. There's no way to override this behaviour short of modifying the registry, but as a workaround you can pass a shortened path to the .msi, as these aren't subject to redirection:The text was updated successfully, but these errors were encountered: