我試圖進行安裝,將多個地方的相同文件的副本...如何使用Wix將一組文件複製到多個位置?
有沒有簡單的方法來做到這一點?
例如。如果我想把A.TXT b.txt c.txt到所有以下目錄: - 。
\布拉赫\
\ Txts \
\例子\
我試圖進行安裝,將多個地方的相同文件的副本...如何使用Wix將一組文件複製到多個位置?
有沒有簡單的方法來做到這一點?
例如。如果我想把A.TXT b.txt c.txt到所有以下目錄: - 。
\布拉赫\
\ Txts \
\例子\
只需創建多個組件它引用相同的文件,但將其安裝到不同的位置。唯一的小問題,就是你不能同時採用兩種<File Source="somefile"/>
元素引用相同的文件,因爲他們將得到同樣的自動生成的ID。顯式給文件元素不同的ID以避免這個問題。
<DirectoryRef Id="directory1">
<Component Id="somefile-component1">
<File Id="somefile-id1" Source="/path/to/somefile"/>
</Component>
</DirectoryRef>
<DirectoryRef Id="directory2">
<Component Id="somefile-component2">
<File Id="somefile-id2" Source="/path/to/somefile"/>
</Component>
</DirectoryRef>
Windows Installer對於這個名爲「DuplicateFiles」有它自己的概念。它只適用於文件實際上是相同的,但它聽起來就是你想要的。在WIX你通過的CopyFile元素實現這一點:
http://wix.sourceforge.net/manual-wix2/wix_xsd_copyfile.htm
我還沒有真正嘗試過,但它應該是這個樣子
<Component Id='Manual' Guid='*' >
<File Id='Manual' Name='Manual.pdf' Source='Manual.pdf' KeyPath='yes'>
<CopyFile Id='MyDuplicateFile1' DestinationProperty ='DesktopFolder'/>
</File>
</Component>
這是否刪除卸載副本? – 2009-10-14 13:28:42
是的,它實際上 - 只要是做了重複被卸載(如果它是一組永久它可能不是)組成。 – 2009-10-14 14:44:06
是的,我想通kindda我能做到這一點,但那是痛苦的,這意味着單獨的ID和GUID,等等等等 另一種選擇是的CopyFile似乎,但你必須處理它們的卸載 – 2009-10-13 20:33:14
你也可以使用多個安裝程序,每個定義引用相同的組件目錄不同。但是,你最終會得到多個MSI文件。你想讓我詳細說明這種方法嗎? – 2009-10-13 23:09:10
我會接受這個答案,因爲這是我最終有效地做的。我不喜歡所有的重複的想法,所以我最後寫的是生成的XML維克斯我和自動處理重複的程序。感覺像wix是太原始的,需要更高級別的抽象來編寫安裝程序。 – 2009-10-18 20:14:26