2011-10-04 54 views
2

我想用Wix 3.5安裝帶有某些DLL的產品。 這些DLL是通過單選按鈕組在msi安裝期間確定的。 我:如何分解Wix中的東西?

  • 一個(片段)WXS爲myDllv1
  • 一個(片段)WXS爲myDllv2
  • 一個(UI片段)與RadioButtonGroup中WXS與屬性MYDLL v1和MYDLL V2之間做出選擇安裝類型
  • 安裝正確版本的myDll的主要wxs文件。

問題:我有另一組DLL的補充,我想修改爲少文件成爲了可能。 我不想引入錯誤,我想保持解耦。

我想修改只有單選按鈕的UI片段,並添加一個myDllv3片段(沒有做任何改變我的主wxs文件,所以沒有條件在該文件..)。

可能嗎?

回答

1

爲什麼在構建msi時不使用pre-processors來選擇正確的碎片?

<?if $(env.SomeBuildParameter) = SetA ?> 
    <?include myDllSetAv1.wxs ?> 
    <?include myDllSetAv2.wxs ?> 
<?else ?> 
    <?include myDllSetBv1.wxs ?> 
    <?include myDllSetBv2.wxs ?> 
<?endif ?> 
0

我可能誤解了問題,但它聽起來像你的不同組DLL應該由內維克斯功能進行分組。我建議創建獨立的WIX片段,代表每個Dll組的功能,然後可以根據需要綁定UI以安裝特定的功能。

您在產品水平代表一個功能,像這樣:

<Feature Id="Feature.One" Title="Feature One"> 
      <ComponentGroupRef Id="FeatureOneDlls.Group" /> 
</Feature> 

<Feature Id="Feature.Two" Title="Feature Two"> 
      <ComponentGroupRef Id="FeatureTwoDlls.Group" /> 
</Feature> 

並在每一個我建議使用一個單獨的文件WXS提供包含該功能的文件片段信息的功能。

相關問題