2012-08-15 55 views
2

我有幾個屬性來設置時ALLUSERS爲1:維克斯 - 在自定義操作設置多個屬性

<CustomAction Id="CA1" Property="InstallDir" Value="[MYINSTALLDIR]" Execute="immediate" /> 
<CustomAction Id="CA2" Property="Version" Value="2.0" Execute="immediate" /> 
<CustomAction Id="CA3" Property="x" Value="x" Execute="immediate" /> 
<CustomAction Id="CA4" ... /> 
<CustomAction Id="CA5" ... /> 

<InstallExecuteSequence> 
    <Custom Action="CA1" After="AppSearch">ALLUSERS=1</Custom>  
    <Custom Action="CA2" After="AppSearch">ALLUSERS=1</Custom>  
    <Custom Action="CA3" After="AppSearch">ALLUSERS=1</Custom>  
    <Custom Action="CA4" After="AppSearch">ALLUSERS=1</Custom>  
    <Custom Action="CA5" After="AppSearch">ALLUSERS=1</Custom>  
</InstallExecuteSequence> 

這是工作,但我不知道是否有更簡潔的方式來代替噸CA和愚蠢的ID,如:

<CustomAction Id="CA" Property="InstallDir=[MYINSTALLDIR]; Version=2.0; x=x; y=y; z=z ..." Execute="immediate" /> 

<InstallExecuteSequence> 
    <Custom Action="CA" After="AppSearch">ALLUSERS=1</Custom>  
</InstallExecuteSequence> 

這可能嗎?

+1

它可能看起來過度,但它是正確和最可靠的方法。 – saschabeaumont 2012-08-15 03:33:26

回答

4

你可以編寫一個調用MsiSetProperty()一堆的C++自定義操作。儘管如此,從技術上講,失敗風險更大。一旦建立,一堆集財產CA通常不會那麼可怕。

相關問題