2010-07-08 54 views
2

我需要對* .wxs文件中的目錄結構進行一些說明。據我所知,它將文件安裝到我們在目錄元素中指定的目錄中。它有其他用途嗎?WIX中的目錄元素

如果確實描述了安裝產品的目錄結構,而不是安裝程序中用戶有瀏覽選項會發生的情況。

如果我不想在我的.msm文件中使用任何目錄結構,我該怎麼辦?

http://schemas.microsoft.com/wix/2003/01/wi'>

 <Directory Id='TARGETDIR' Name='SourceDir'> 
     <Directory Id='MyModuleDirectory' Name='.'> 
      <Component Id='MyModuleComponent' Guid='87654321-4321-4321-4321-110987654321'> 
       <File Id='readme2' Name='readme2.txt' src='readme2.txt' /> 
      </Component> 
     </Directory> 
     </Directory> 
    </Module> 
</Wix> 
+0

我建議你看看http://iswix.codeplex.com它會幫助你生成你的合併模塊。 – 2010-07-08 16:13:03

回答

3

幾個要點:

1)你必須在一個目錄因爲每個組件都必須屬於一個目錄。

2)將模塊合併到安裝程序時,將模塊目錄關聯/重定向爲安裝程序中目錄的子目錄。例如:

<!-- in your MSI .wxs --> 
<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="ProgramFilesFolder"> 
    <Directory Id="CompanyFolder" Name="DeploymentEngineering"> 
     <Directory Id="INSTALLLOCATION" Name="Fireworks"> 
     <Merge Id="FireworksMM" SourceFile="..." DiskId="1" Language="1033"> 

這意味着INSTALLLOCATION將具有默認值: ''

[ProgramFilesFolder] DeploymentEngineering \煙花

由於模塊的目錄具有值它的默認值是[ProgramFilesFolder] DeploymentEngineering \ Fireworks

如果用戶點擊瀏覽按鈕並將INSTALLLOCATION的值更改爲另一個目錄,則所有的都會正常,因爲modules目錄仍然是INSTALLLOCATION的一個孩子,值爲'。'。

有意義嗎?