What you are describing is a self-extracting bootstrapper. Various
vendors such as InstallShield support this or you could do something as
simple as a WinZip self extracting archive.
"idiot" <zen...@21esn.com> spake the secret code
<eGVTUE$8GHA...@TK2MSFTNGP03.phx.gbl> thusly:
>How can I compress all cabinet files and msi file into a single setup.exe?
It depends on what you are using to build your MSI.
--
"The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download
<http://www.xmission.com/~legalize/book/download/index.html>
ORCA
"idiot" <zen...@21esn.com> spake the secret code
<OV2U3U$8GHA...@TK2MSFTNGP03.phx.gbl> thusly:
>> It depends on what you are using to build your MSI.
>
>ORCA
You'll have to write your own self-extractor then if you want a single
setup.exe. The SDK has one.
However, you can embed CABs in the MSI ... I think you can even do
this with Orca, but I know there is a tool in the SDK to do it for you
if Orca doesn't do it. Basically the CAB gets stored as an embedded
stream.
Orca will certainly let you add/extract/replace CABs referenced in the MSI
Cabs table; just double-click on the [Binary Data] cell in the appropriate
row. You can use the SDK's CABWIZ.EXE to create/modify the CAB. The
double-click trick also works with files in the Binary table, FWIW.
As for a self-extractor, you could probably use the self-extracting EXE
features of WinZip/WinRAR if you're willing to pay for a license and your
install needs are simple (i.e. just extract & run the MSI).
Or you can look at the SDK example Richard mentioned; also look at the
msistuff example (it will put your MSI into the EXE created by the setup
sample). I've gone that route a couple of times, most recently using the
Cabinet and CryptUI APIs to allow the EXE & MSI to be Authenticode signed
and the MSI to be compressed before embedding it into the EXE.
"idiot" <zen...@21esn.com> 写入消息新闻
:#ud2lax9...@TK2MSFTNGP04.phx.gbl...