2011-11-04 60 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