我正在阅读 wix 的教程和手册,并试图弄清楚如何应用安装前检测,比如检测机器上是否安装了 Visual Studio 2012 和 Update 2。
以下是wix源代码,但我不确定注册表项是否是检测的先决条件。
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:dd="http://schemas.microsoft.com/wix/2005/01/dd">
<!-- Detection keys fragment. -->
<Fragment>
<!-- TARGETDIR should be set by a type 51 CA to the root installation location for all products. -->
<DirectoryRef Id="TARGETDIR">
<!-- Use all variables in the full key path for the auto-generated GUID,
including LANG, since [ProductName] is lang-specific.
-->
<Component Id="Detection_Keys_Reg" Guid="$(autoguid.ComponentGuid(Detection_Keys_Reg,$(var.ProductFamily),$(var.ProductEdition),$(var.VSRegVer),$(var.Lang)))">
<RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\VisualStudio\$(var.VSRegVer)\Setup\[ProductName]">
<RegistryValue Id="Detection_Keys_RegKey_1" Name="InstallSuccess" Type="integer" Value="1" KeyPath="yes" />
<RegistryValue Id="Detection_Keys_RegKey_2" Name="SrcPath" Type="string" Value="[SourceDir]" />
</RegistryKey>
</Component>
</DirectoryRef>
<Feature Id="Detection_Keys" Absent="disallow" AllowAdvertise="no" Description="Used to detect product installation" Display="hidden" Level="1" InstallDefault="local" Title="Detection" TypicalDefault="install">
<ComponentRef Id="Detection_Keys_Reg" />
<dd:ExtensionData FeatureGuid="67DC7E25-1836-42AA-A0F8-6E85528D6986" InstallDirectory="TARGETDIR" AllowRunFromSource="no" FeatureGFN="DetectionKeys">Detection Keys</dd:ExtensionData>
</Feature>
</Fragment>
文件夹中的两个注册表项
“HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0_Config\Setup\Microsoft Visual Studio Ultimate 2012\”
在我安装 VS2012 后确实存在(但不在 HKLM 中)。我不明白一些标签(仍在阅读手册)
所以问题是:1.这是为了检测吗?2. 需要的软件不存在时,如何写一些弹窗信息。
您能否为此提供一些典型的样本?
谢谢!