Xml WiX-查找.msi目录的父目录
我正在使用WiX创建一个自定义安装程序。我想从.msi目录向上导航一个目录,以便找到可执行文件的路径。在做了一些研究之后,我发现[OriginalDatabase]指向.msi的位置,但我不知道如何从该位置向上搜索而不是向下搜索。这是我的搜索代码:Xml WiX-查找.msi目录的父目录,xml,wix,windows-installer,installation,wix3.7,Xml,Wix,Windows Installer,Installation,Wix3.7,我正在使用WiX创建一个自定义安装程序。我想从.msi目录向上导航一个目录,以便找到可执行文件的路径。在做了一些研究之后,我发现[OriginalDatabase]指向.msi的位置,但我不知道如何从该位置向上搜索而不是向下搜索。这是我的搜索代码: <Property Id="SHORTCUT"> <DirectorySearch Path="..\[OriginalDatabase]" Depth="0"
<Property Id="SHORTCUT">
<DirectorySearch Path="..\[OriginalDatabase]"
Depth="0"
AssignToProperty="no"
Id="MainSearch" >
<FileSearch Name="Program.exe" Id="EXESearch" />
</DirectorySearch>
</Property>
WiX不允许我在预设目录路径前添加“.\”。我不知道如何从那个文件夹向上导航。如有任何建议,将不胜感激 Windows Installer没有这样的功能。您必须编写一个自定义操作来解析原始数据库,然后从那里向上到达父数据库。为了让人们知道我是如何解决这个问题的,下面是我的脚本(我必须用vbscript编写)。它非常凌乱,但它可以工作:
Session.Property("SHORTCUT") = Left(Session.Property("OriginalDatabase"), InStrRev(Session.Property("OriginalDatabase"), "\") -1)
Session.Property("SHORTCUT") = Left(Session.Property("SHORTCUT"), InStrRev(Session.Property("SHORTCUT"), "\") -1)
如果Windows Installer允许这样做(我不认为它允许),那么您的路径引用无论如何都是错误的。正确的应该是
[OriginalDatabase]\..
,它是“OriginalDatabase文件夹的父文件夹”。我尝试了[OriginalDatabase]\。。我说“(我认为它不起作用”):-)我对WiX很陌生,你知道自定义操作是什么样子吗?这取决于你用什么语言编程。C#看起来像session[“SHORTCUT”]=newdirectoryinfo(session[“OriginalDatabase”])。Parent.FullName;好的,我试试看。非常感谢你!对不起,我是新来的,不能投票,但我一定会接受。以防万一你还没有读到: