Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml WiX-查找.msi目录的父目录_Xml_Wix_Windows Installer_Installation_Wix3.7 - Fatal编程技术网

Xml WiX-查找.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"

我正在使用WiX创建一个自定义安装程序。我想从.msi目录向上导航一个目录,以便找到可执行文件的路径。在做了一些研究之后,我发现[OriginalDatabase]指向.msi的位置,但我不知道如何从该位置向上搜索而不是向下搜索。这是我的搜索代码:

<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;好的,我试试看。非常感谢你!对不起,我是新来的,不能投票,但我一定会接受。以防万一你还没有读到: