Reputation: 151
Where, oh where, do you find the full URL, CertificatePublicKey & CertificateThumbprint and SHA-1 hash values for the various Windows Installer 4.5 redistributables (i.e. WindowsXP-KB942288-v3-x86.exe, WindowsServer2003-KB942288-v4-x86.exe, WindowsServer2003-KB942288-v4-x64.exe, Windows6.0-KB942288-v2-x86.msu, etc.)?
I need these details for the Wix Burn "RemotePayload" element in order to perform a silent prerequisites-step download and install of Windows Installer 4.5 when it is missing from target systems. A good example is given in this https://stackoverflow.com/a/11308837/2430722, which was posted in answer to a different question:
<ExePackage Id="WinXP_x86"
Cache="no"
Compressed="no"
PerMachine="yes"
Permanent="yes"
Vital="yes"
Name="redist\WindowsXP-KB942288-v3-x86.exe"
DownloadUrl="http://download.microsoft.com/download/2/6/1/261fca42-22c0-4f91-9451-0e0f2e08356d/WindowsXP-KB942288-v3-x86.exe"
InstallCondition="VersionNT=v5.1 AND NOT VersionNT64 AND VersionMsi < v4.5"
InstallCommand="/quiet /norestart">
<RemotePayload ProductName="Windows Installer 4.5"
Description="Windows Installer 4.5 Setup"
CertificatePublicKey="F321408E7C51F8544B98E517D76A8334052E26E8"
CertificateThumbprint="D57FAC60F1A8D34877AEB350E83F46F6EFC9E5F1"
Hash="86E1CC622DBF4979717B8F76AD73220CDB70400B"
Size="3327000"
Version="4.5.0.0" />
<ExitCode Behavior="forceReboot"/>
</ExePackage>
I have searched and searched and can't find where this information is made available. Can anyone help?
Upvotes: 3
Views: 1462
Reputation: 1710
Best practice I've found for this is to take the bootstraper package from the windows SDK which already contains all the links, hashes, files names, commands and conditions that are required for adding the MSI prereq, all you need to do is trivially translate the package's package.xml to a burn ExePackage.
On a PC with Windows SDK 8.1, look here:
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\Bootstrapper\Packages\WindowsInstaller4_5
Upvotes: 0
Reputation: 6637
You can use heat to generate the RemotePayload for you:
heat.exe payload PATH_TO_FILE -o Output.wxs
This is actually currently undocumented on the page linked above but checking the exe it is still there in v3.8:
Windows Installer XML Toolset Toolset Harvester version 3.8.1128.0
Copyright (c) Outercurve Foundation. All rights reserved.
usage: heat.exe harvestType harvestSource <harvester arguments> -o[ut] sourceFile.wxs
Supported harvesting types:
dir harvest a directory
file harvest a file
payload harvest a bundle payload as RemotePayload
perf harvest performance counters
project harvest outputs of a VS project
reg harvest a .reg file
website harvest an IIS web site
Options:
-ag autogenerate component guids at compile time
-cg <ComponentGroupName> component group name (cannot contain spaces e.g -cg MyComponentGroup)
-configuration configuration to set when harvesting the project
-directoryid overridden directory id for generated directory elements
-dr <DirectoryName> directory reference to root directories (cannot contain spaces e.g. -dr MyAppDirRef)
-ext <extension> extension assembly or "class, assembly"
-g1 generated guids are not in brackets
-generate
specify what elements to generate, one of:
components, container, payloadgroup, layout, packagegroup
(default is components)
-gg generate guids now
-indent <N> indentation multiple (overrides default of 4)
-ke keep empty directories
-nologo skip printing heat logo information
-out specify output file (default: write to current directory)
-platform platform to set when harvesting the project
-pog
specify output group of VS project, one of:
Binaries,Symbols,Documents,Satellites,Sources,Content
This option may be repeated for multiple output groups.
-projectname overridden project name to use in variables
-scom suppress COM elements
-sfrag suppress fragments
-srd suppress harvesting the root directory as an element
-sreg suppress registry harvesting
-suid suppress unique identifiers for files, components, & directories
-svb6 suppress VB6 COM elements
-sw<N> suppress all warnings or a specific message ID
(example: -sw1011 -sw1012)
-swall suppress all warnings (deprecated)
-t transform harvested output with XSL file
-template use template, one of: fragment,module,product
-v verbose output
-var <VariableName> substitute File/@Source="SourceDir" with a preprocessor or a wix variable
(e.g. -var var.MySource will become File/@Source="$(var.MySource)\myfile.txt" and
-var wix.MySource will become File/@Source="!(wix.MySource)\myfile.txt"
-wixvar generate binder variables instead of preprocessor variables
-wx[N] treat all warnings or a specific message ID as an error
(example: -wx1011 -wx1012)
-wxall treat all warnings as errors (deprecated)
-? | -help this help information
For more information see: http://wixtoolset.org/
Upvotes: 4
Reputation: 3645
I'm not sure you need the key/thumbprint/hash etc. but if you want it:
Right click on the file, select Properties
Click Digital Signatures
tab
Select the signature and click Details
Click View Certificate
Click Details
tab
Click Public key
field, then you can copy the entire data field below.
When pasting it, remove all spaces and linebreaks.
Upvotes: 0