小编Dan*_*pov的帖子

WIX:如何在不使用注册表搜索的情况下检测是否安装了第三方应用程序?

我正在尝试使用WiX创建安装程序。我的问题是,仅当尚未安装第三方软件或该软件的版本早于所包含软件的当前版本时,才必须安装该第三方软件。请参阅下面的示例。另外,如果您给我有关此第三方软件的一些建议,也将非常好。如果它被另一个程序使用或者只是永久保存,如何防止它被卸载?

我不想使用注册表搜索。我要添加的软件是Dokan驱动程序。

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"
     xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
    <Bundle Name="MyApp" Version="1.2.0.0" Manufacturer="Me" 
      UpgradeCode="{GUID}" IconSourceFile="..\icon.ico">
    <BootstrapperApplicationRef 
      Id="WixStandardBootstrapperApplication.RtfLicense" >
      <bal:WixStandardBootstrapperApplication
        LogoFile="..\lo64.png" LicenseFile="License.rtf"/>
    </BootstrapperApplicationRef>
      <Chain>
        <PackageGroupRef Id="NetFx45Web"/>
        <ExePackage 
          SourceFile="..\ThirdPartySoftware_0.6.0.exe" 
          Permanent="yes" 
          InstallCondition="NOT Installed"/>
        <MsiPackage SourceFile="..\MyApp.msi"/>
      </Chain>
    </Bundle>
</Wix>
Run Code Online (Sandbox Code Playgroud)

通过此编辑,我现在有了安装程序,该程序可以检查是否已安装Dokan,是否已安装。

我尝试检查版本,但文件未版本化,这给了我NULL异常。

<util:FileSearch
      Id="CheckDokan"
      Path="[ProgramFilesFolder]Dokan\DokanLibrary\dokanctl.exe"
      Variable="Dokan"
      Result="exists"/>
<Chain>
  <PackageGroupRef Id="NetFx45Web"/>
  <ExePackage
        SourceFile="Dokan.exe"
        Permanent="yes"
        InstallCommand="/q" 
        DetectCondition='Dokan'/>
   <MsiPackage SourceFile="MyApp.msi"/>
</Chain>
Run Code Online (Sandbox Code Playgroud)

我可以说@Yawar帮助了我。

installer wix

4
推荐指数
1
解决办法
3676
查看次数

WiX刻录升级显示最后的卸载UI

我正在尝试为WiX和Burn创建自定义UI.除了一件事,我差不多完成了.在升级的安装结束时(对于exaple 1.0.0到1.1.0),先前版本的卸载开始,并显示其UI.我的问题是如何处理这个问题,以便用户最终看不到卸载UI.

wix upgrade bootstrapper burn

4
推荐指数
1
解决办法
854
查看次数

标签 统计

wix ×2

bootstrapper ×1

burn ×1

installer ×1

upgrade ×1