Quote:
Originally Posted by kovidgoyal
I certainly don't ask it to check for disk space, that was Microsoft's bright idea and their implementation of it is absolutely ridiculous. Unfortunately, I am stuck using Microsoft software to build the installer because of another crazy decision they made regarding the distribution of visual studio runtimes.
Personally, working on the windows installer gives me a migraine, so I'm not going to touch it anymore. Still if anyone wants to help the code is in
setup/installer/windows/*
(calibre uses WiX to generate the .msi file)
|
MSIs do the
file costing for a reason -- by spending some time up front calculating file diffs, the MSI can avoid unpacking/installing files it doesn't need to change. Unfortunately for Calibre, this works poorly when there are a ton of files in the installer (I'm seeing > 4000 files, which is a lot) and that slows down costing. I don't know which will be more efficient -- spending the time to do file costing, or just copying every file whether it's needed or not. I suspect the latter is done anyway during a calibre installation, so FileCost could most likely be disabled.
In wix-template.xml, add a section at the end (before </Product>) like:
Code:
<InstallExecuteSequence>
<FileCost Suppress="yes" />
</InstallExecuteSequence>
You might have to do the same for <InstallUISequence />, <AdminExecuteSequence />, and <AdminUISequence />, but I'm not sure. I'd hope <InstallExecuteSequence /> would take care of it. Also note that this is completely untested but should get people moving in the right direction if someone is interested enough to make this change.