wix安装程序"无法访问网络位置"

时间:2016-05-19 12:40:32

标签: wix

我收到错误"无法访问网络位置\ Common"运行安装程序时。

非常感谢任何想法。

<Property Id="BINDIR">
  <RegistrySearch Id='BinDirReg' Type='raw' Root='HKLM' Key='SOFTWARE\xxx' Name='AppDir' Win64='no'/>
</Property>
<Property Id="DATADIR">
  <RegistrySearch Id='DataDirReg' Type='raw' Root='HKLM' Key='SOFTWARE\xxx' Name='DataDir' Win64='no'/>
</Property>
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />
<UIRef Id="WixUI_InstallDir" />
<SetDirectory Id="TESTBINFOLDER" Value="[BINDIR]\a\b\c" />
<SetDirectory Id="TESTDATAFOLDER" Value="[DATADIR]\a\b\c" />
<SetDirectory Id="TESTCOMMONDATAFOLDER" Value="[DATADIR]\Common" />

1 个答案:

答案 0 :(得分:2)

DATADIR属性的值为空,因此TESTCOMMONDATAFOLDER的值为“\ Common”

您真的不应该尝试以这种方式定义目录结构,因为在您第一次安装时,您将尝试将TESTCOMMONDATAFOLDER设置为[DATADIR] \ Common,但注册表中不存在您的注册表项。< / p>

您应该将目录结构定义为默认基准。对于msis,您可以使用几个明确的System Folder Properties来定义默认目录结构。

<Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLDIR" Name="CompanyName">                
            <Directory Id="BIN" Name="_bin" />                    
            <Directory Id="DataDir" Name="Data" />
        </Directory>
    </Directory>
    <Directory Id="AppDataFolder" >
       <Directory Id="ProductName" />
    </Directory>
    <Directory Id="ProgramMenuFolder">
        <Directory Id="ApplicationProgramsFolder" Name="ProductName"/>
    </Directory>
</Directory>

以这种方式定义默认结构。如果您让用户设置自定义安装位置,则可以使用注册表搜索来设置目录的属性,其他所有内容都将很好地更新。例如,

<Property Id="INSTALLDIR">
    <RegistrySearch
            Id="InstallDirRegSearch"
            Root="HKLM"
            Key="SOFTWARE\ProductName"
            Name="Path"
            Type="raw"/>
 </Property>

这会将INSTALLDIR设置为自定义位置,所有BIN和DataDir文件夹将使用新的INSTALLDIR位置进行更新。您可以执行类似的注册表搜索来设置所有其他目录的目录位置。这样做的好处是,如果这些注册表位置不存在,您仍将使用默认定义的结构进行安装。