2011-11-04 117 views
3

这给我留下了\ Default.udl如何在维克斯RegistryValue相对设置安装路径

<RegistryKey Key="Software\My Company\Product\Connections" Root="HKCU"> 
    <RegistryValue Name="Default" Value="[INSTALLLOCATION]\Default.udl" Type="string" /> 
</RegistryKey> 

我想类似C:\ Program Files文件\企业\产品\ Default.udl

+0

你使用INSTALLLOCATION作为目录ID(而不是,例如,INSTALLDIR或APPLICATIONFOLDER)吗? – marcin

+0

当时我写了这个问题,我没有使用任何,现在我正在使用应用程序文件夹。奇怪的是,我可以成功地创建一个正确的路径使用只是安装位置的密钥,但没有后面追加的文件名 – bluekeys

回答

6

我可以想到一些可能导致问题的事情。

你确定你的目录布局是正确的吗?它应该是这个样子:

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="ProgramFilesFolder"> 
    <Directory Id="CompanyFolder" Name="My Company"> 
     <Directory Id="INSTALLLOCATION" Name="Product"> 
     </Directory> 
    </Directory> 
    </Directory> 
</Directory> 

我相信HKCU蜂巢意味着只有在每个用户的安装使用,但您指定的路径下的程序文件。您可能需要查看Installation Context documentation以了解每个用户和每台计算机的安装之间的差异。在某些版本的Windows中,ProgramFilesFolder在每个用户模式下具有不同的值。

或者,如果您的安装程序正在放置Default.udl文件,则可以使用[#filekey] syntax直接指向该文件。

<RegistryValue Name="Default" Value="[#Default.udl]" Type="string" /> 
+1

太棒了,我实际上使用APPLICATIONFOLDER,但我我有机会的时候会切换到[#FILE]符号。你的回答很明确,并且包含了关于安装环境的相关额外信息,这些信息可能在上周开启了我的视线! – bluekeys