自定义产品卸载方式
继续从上一次的基础上前进,现在我们已经知道了最简单的bootstrapper打包方法,现在我们对其中的每个节点深入自定义,争取可以达到我们需要的效果。先把最后全部的XML贴出来。
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" >
<Bundle Name="CamCard" Version="4.0.0.0" Manufacturer="IntSig Information Co., Ltd." AboutUrl="http://www.intsig.net" IconSourceFile="icon_256.ico"
UpgradeCode="1EB9EC76-9E5F-4471-B522-314A62518A80" DisableRemove="no" DisableModify="yes" DisableRepair="yes">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense">
<bal:WixStandardBootstrapperApplication LicenseFile="license.rtf" ThemeFile="MyTheme.xml" LocalizationFile="MyLocalize.wxl" LogoFile="logo.png" />
</BootstrapperApplicationRef>
<Chain>
<ExePackage Id="Netfx4Full"
Cache="no"
Compressed="no"
PerMachine="yes"
Permanent="yes"
Vital="yes" InstallCommand=" /q /norestart"
SourceFile="dotNetFx40_Full_x86_x64.exe"
DownloadUrl="http://go.microsoft.com/fwlink/?LinkId=164193"
DetectCondition="DotNetFramework40FullInstallRegValue=1" />
<MsiPackage Compressed="no" SourceFile="SSCERuntime-CHS.msi" Vital="yes" DisplayInternalUI="no" Permanent="yes" ForcePerMachine="yes"
DownloadUrl="http://go.microsoft.com/fwlink/?LinkID=166085"
InstallCondition="VersionNT = v5.1" />
<MsiPackage Compressed="no" SourceFile="IntSig.CamCard.Installer.msi" Vital="yes" DisplayInternalUI="no" Permanent="no" ForcePerMachine="yes">
<MsiProperty Name="TARGETDIR" Value="[InstallFolder]"/>
</MsiPackage>
</Chain>
<util:RegistrySearch Id="FindDotNet40FullInstallRegValue" Root="HKLM"
Key="SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" Value="Install"
Variable="DotNetFramework40FullInstallRegValue" />
</Bundle>
</Wix>
Bundle节点前面几个属性我们都已经知道了,IconSourceFile就是打包后exe的图标设置,DisableRemove、DisableModify这两个属性比较有讲究,他们分别设置了在“添加/删除程序”列表中,选中安装包后鼠标右击,是否会出现“卸载”和“修改”这两个选项。如果这两个选项都同时为yes,那这个产品安装后根本就不会出现在“添加/删除程序”列表中,只能通过再次双击bootstrapper安装exe进行卸载。
自定义产品安装界面
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense">
<bal:WixStandardBootstrapperApplication LicenseFile="license.rtf" ThemeFile="MyTheme.xml" LocalizationFile="MyLocalize.wxl" LogoFile="logo.png" />
</BootstrapperApplicationRef>
BootstrapperApplicationRef这个节点上一篇已经讲解过,但是我们使用的是最原始的默认界面,事实上可以通过在该节点中加入WixStandardBootstrapperApplication来自定义安装界面。LicenseFile就是要显示在用户安装协议中的RTF文件名称。ThemeFile是自定义主题xml文件,该文件详细定义了安装界面中的每个按钮和控件的位置。LocalizationFile是本地化配置文件,这个版本的Burn框架还不支持运行时自动根据安装语言环境自动切换。如果你需要采用本地化安装策略,比较靠谱的方法就是在bootstrapper之前再执行另一个exe,用来判断语言环境并自动执行不同的bootstrapper进行安装。LogoFile是安装界面左上角那个图标,注意XP环境下好像是不能使用ICON文件的。
ThemeFile="MyTheme.xml" 这个文件可以在WiX源代码中找到,我贴在这篇博客里面,方便大家直接复制粘贴,这文件和后面的本地化文件的确不好找。
<?xml version="1.0" encoding="utf-8"?&