2010-07-06 34 views
2

我想在我的WiX安裝到默認情況下,proptery的硬編碼目錄。是否有一個「正確」的方式來進行編碼的默認值(注意,這是一個內部項目,不是向市民派發),所以我沒有得到以下警告:來處理維克斯警告正確方法ICE48

LGHT1076: ICE48 Directory 'FOO' appears to be hardcoded in the property table to a local drive. 

的威克斯文件看起來像這個:

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
    xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> 
    <Product Id="22E1F223-E3AD-45F8-A394-1289AAAA64C8" 
      Name="MyService" 
      Language="1033" Version="1.0.0.0" 
      UpgradeCode="140F5A44-58DA-4364-876B-9D9484C04CD9"> 
    <Package InstallerVersion="200" Compressed="yes" /> 

    <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" /> 

    <Property Id="FOO" Value="C:\MyRootDirectory\" /> 

對此有何想法?

+0

我有同樣的問題,我們只是住在一起的警告。在我們的場景中,將目錄硬編碼到軟件包中是有意義的。 – Russell 2010-07-07 05:43:44

回答

2

如果要遵循最佳做法(我不認爲既然你提到它的「內部」安裝程序,你在這裏做),你應該永遠不會硬代碼路徑。選擇一個屬性像WindowsVolume和設計應用程序要靈活,如果WindowsVolume恰好不C:

如果你真的不關心這個,你可以使用自定義操作的屬性設置爲你想要的東西很安裝開始。在UI和執行序列中早期預定的簡單Type 51 CA(Set Property)將很好地實現這一技巧。通過這種方式,當驗證運行時,該屬性不具有違規值,但在安裝開始時立即獲取該值。

0

在我的情況下,要擺脫這個警告我選擇了從屬性刪除默認值。 例如,這(無ICE48警告):

<Property Id="VS2010INSTALLDIR"> 
    <RegistrySearch Id="VS2010_InstallDir" Root="HKLM" Key="SOFTWARE\Microsoft\VisualStudio\10.0" Name="InstallDir" Type="raw" /> 
</Property> 

,而不是這個(ICE48警告):

<Property Id="VS2010INSTALLDIR" Value="0"> 
    <RegistrySearch Id="VS2010_InstallDir" Root="HKLM" Key="SOFTWARE\Microsoft\VisualStudio\10.0" Name="InstallDir" Type="raw" /> 
</Property>