wix toolset将 cab 打包进msi

时间:2023-03-09 09:20:15
wix toolset将 cab 打包进msi

在***wxs中添加配置

<MediaTemplate EmbedCab="yes" />

下面是一个简单配置:(包含写注册表)

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="xyz" Language="1033" Version="1.0.0.0" Manufacturer="app" UpgradeCode="1eb8f796-3b8e-41d6-9951-9d70b8630e69">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate EmbedCab="yes" /> <Feature Id="ProductFeature" Title="xyz" Level="1">
<ComponentGroupRef Id="ProductComponents" />
<ComponentRef Id="RegistryEntry" />
</Feature>
</Product> <Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="xyz" />
</Directory>
</Directory>
</Fragment> <Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. -->
<!-- <Component Id="ProductComponent"> -->
<!-- TODO: Insert files, registry keys, and other resources here. -->
<!-- </Component> --> <Component Id="ProductComponent" Guid="0E5598EB-B3B8-4EF5-8E8A-78A7133B6D34"> <File Id="xyz.exe" Source="xyz.exe" />
<File Id="libxxx.dll" Source="libxxx.dll" />
<File Id="msvcp120.dll" Source="msvcp120.dll" />
<File Id="msvcr120.dll" Source="msvcr120.dll" />
<File Id="vccorlib120.dll" Source="vccorlib120.dll" />
<File Id="test.html" Source="test.html" />
<File Id="reg_test.reg" Source="reg_test.reg" />
</Component>
</ComponentGroup>
</Fragment>
<Fragment>
<DirectoryRef Id="TARGETDIR">
<Component Id="RegistryEntry" Guid="B0464DA0-31B9-4DD1-B058-8CD19D07612F">
<RegistryKey Root="HKCR" Key="xyz">
<RegistryValue Type="string" Value="xyz Protocol" />
<RegistryValue Type="string" Name="URL Protocol" Value="" />
</RegistryKey>
<RegistryKey Root="HKCR" Key="xyz\DefaultIcon">
<RegistryValue Type="string" Value="[INSTALLFOLDER]xyz.exe,1" />
</RegistryKey>
<RegistryKey Root="HKCR" Key="xyz\shell\open\command">
<RegistryValue Type="string" Value="&quot;[INSTALLFOLDER]xyz.exe&quot; &quot;%1&quot;" />
</RegistryKey>
</Component>
</DirectoryRef>
</Fragment>
</Wix>