【问题标题】:WiX Property: Directory Search: "Could not access network location"WiX 属性:目录搜索:“无法访问网络位置”
【发布时间】:2011-07-10 19:38:48
【问题描述】:

我正在使用 WiX 3.5 工具集制作安装程序,但遇到了一个问题:

安装程序需要能够检测是否存在其他程序,如果存在,则在其目录中添加一个 DLL 文件。我使用以下代码来确定第二个程序的安装位置:

<Property Id="FIND_INSTALLDIR" Value="[%ProgramFilesFolder]\PROGRAM">
    <RegistrySearch
        Id="INSTALLDIRSearch"
        Root="HKLM"
        Name="UninstallString"
        Type="file"
        Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PROGRAM"
    />
</Property>

问题是,如果第二个程序没有安装,Windows Installer 会给我一个错误:

Could not access network location [%ProgramFilesFolder]\PROGRAM

不过,我需要能够优雅地处理这个问题……如何从错误中恢复?

【问题讨论】:

    标签: wix windows-installer wix3.5


    【解决方案1】:

    也许这会对您有所帮助: Detecting the presence of a directory at install time

    基本上,您需要确保将用于 DLL 文件夹的属性设置为有效路径,即使不会安装 DLL(未找到实际路径)。

    【讨论】:

    • 嗯...是的,我会试试的,我不确定它是否会有所帮助,但它看起来不错。谢谢。
    • 嗯 - 链接有所帮助,但不是你提到的方式。 :) 我所要做的就是设置Value...其他一切正常!
    • +1 因为这对我有帮助,但由于它不是解决方案,我不能真正接受答案。不过谢谢! :)
    【解决方案2】:

    在 Cosmin 的帮助下,我找到了解决方案:

    我所要做的就是设置Value,这样它就不会试图找到文件夹......其他一切都很好!

    【讨论】:

    • 对,你不能在&lt;Property Value 中使用[variables]。但是您可以通过添加另一个 &lt;SetProperty Id="FIND_INSTALLDIR" Value="[%ProgramFilesFolder]\PROGRAM"&gt;not FIND_INSTALLDIR&lt;/SetProperty&gt; 来设置默认值
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-25
    • 1970-01-01
    • 2014-01-29
    • 2012-09-20
    • 1970-01-01
    相关资源
    最近更新 更多