在WiX的項目,您通常會看到這樣爲什麼TARGETDIR目錄需要一個名稱?
<Directory Id="TARGETDIR" name="SourceDir">
但爲何name
需要在此處設置一條線嗎?據我所知,name
屬性指定了正在安裝的計算機上生成的文件夾的名稱。但是沒有SourceDir文件夾會被創建,所以它爲什麼需要?
在WiX的項目,您通常會看到這樣爲什麼TARGETDIR目錄需要一個名稱?
<Directory Id="TARGETDIR" name="SourceDir">
但爲何name
需要在此處設置一條線嗎?據我所知,name
屬性指定了正在安裝的計算機上生成的文件夾的名稱。但是沒有SourceDir文件夾會被創建,所以它爲什麼需要?
TARGETDIR在解析MSI文件的目錄表中發揮着特殊作用。具體來說,它構成了源和目標目錄樹的根。這是在MSI文件由Directory_Parent列中的空值表示:
目錄分辨率SourceDir後,將指向其中MSI從運行的路徑。此外,TARGETDIR將成爲大多數內置Windows目錄(如ProgramFilesFolder和ProgramMenuFolder)的父文件夾,如上圖所示。
因此,簡而言之SourceDir被定義爲保存正在運行的MSI文件的位置,並且此位置有必要知道爲了解析每個要安裝的文件的分發介質上的源位置。
目標位置是文件的完整安裝路徑:C:\ Program Files \ My App(文件正在發送)。源位置是文件的完整源路徑:[SourceDir] Program Files \ My App(文件來自此處)。
現在已經晚了,請告訴我,如果不清楚。
UPDATE: 原來這個問題已經被問過。從Wix的創作者Rob Mensching那裏查看這篇文章的解釋:In WiX files, what does Name="SourceDir" refer to?