【问题标题】:Wix: Get Directory from File PathWix:从文件路径获取目录
【发布时间】:2018-03-07 10:12:25
【问题描述】:

我正在为 Adob​​e Illustrator 创建一个插件,并尝试使用 WiX 为其制作安装程序。因此,为了让插件安装在正确的位置,我正在阅读注册表以找到最新版本的 illustrator,然后找到该 Illustrator exe 的文件路径。这一切都很好,并给了我"C:\Program Files\Adobe\Illustrator CC 2018\Support Files\Contents\Windows\Illustrator.exe"(我已经检查过了,如果你选择将它安装在其他地方,这条路径会反映这一点)。插件安装在"C:\Program Files\Adobe\Illustrator CC 2018\Plug-ins"

所以我现在要做的是使用 exe 的路径获取插件文件夹的相对路径。在 WiX 中是否有一种简单的方法可以做到这一点?

我尝试过使用

<CustomAction Id="SETDIRECTORY" Property="PLUGINFOLDER" Value="[ILLUSTRATOREXEPATH]..\..\..\Plug-ins" />

但这会引发错误,指出 .. 是无效字符

编辑:

我知道如何通过使用 RegistrySearch 类型“文件”来获取文件的目录,给我"C:\Program Files\Adobe\Illustrator CC 2018\Support Files\Contents\Windows\",但不知道如何在不使用脚本的情况下获取父目录(我不想求助于它,因为它显然会导致防病毒问题)。

【问题讨论】:

    标签: wix windows-installer installation


    【解决方案1】:

    您是否搜索过磁盘上的 注册表INI 文件 或其他 设置文件 以确定插件文件夹的完整路径是否为写在任何地方并可以使用?

    完整路径很有可能写在某个地方,或者您会找到一个基本文件夹,您可以按照您已经做的方式添加子文件夹,但没有导致您出现问题的父目录部分。

    除了简单地查看或搜索注册表和磁盘以寻找线索外,检查原始安装 MSI 还可以提供有关此路径写入位置的线索。查看IniFile tableRegistry tableEnvironment table 等。

    如果您没有工具来细读 MSI 文件,或许可以查看这个答案(靠近底部 - 免费工具列表):How can I compare the content of two (or more) MSI files?


    如果您没有原始安装程序,我将提供技术说明。在安装期间,将在您的系统上制作安装 MSI 的副本。您可以打开此文件来搜索设置。

    此 VBScript sn-p 应显示 Adob​​e 产品的所有缓存包。将它放在桌面上的 *.vbs 文件中,然后运行它。任何结果都会弹出一个消息框(如果没有找到则为空白)。打开指定的 MSI 路径 - 不要更改此文件! (或者更好的是,将其复制到桌面并从那里打开)。

    On Error Resume Next ' we ignore all errors
    Set installer = CreateObject("WindowsInstaller.Installer")
    Dim adobeproducts
    
    For Each product In installer.ProductsEx("", "", 7)
    
       name = product.InstallProperty("ProductName")
       cachedpackage = product.InstallProperty("LocalPackage")
    
       If InStr(LCase(name), "adobe") Then
          adobeproducts = adobeproducts + name & ", " & cachedpackage & vbCrLf & vbCrLf
       End If
    
    Next
    
    MsgBox adobeproducts
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-16
      • 1970-01-01
      • 2015-10-29
      • 1970-01-01
      • 2021-09-28
      • 2015-04-20
      • 2017-03-05
      • 2014-07-09
      相关资源
      最近更新 更多