因此,我有一個WIX項目,可以安裝全新安裝,也可以安裝以前的產品安裝。本產品(如果已安裝)有3個不同文件夾中的多個文件需要保留。該項目還需要將這3個不同文件夾的內容複製到另一組文件夾中(兩個不同位置的內容相同)。爲了做到這一點,我已經建立了我的項目,首先嚐試寫入原始文件夾,如果文件不存在,然後複製這些文件夾的內容。在這些文件已經存在的升級中,這可以正常工作。在全新安裝中,第二組文件夾不會被創建,但所有文件都可以。WIX:在新安裝時沒有複製文件
我的假設,我可能不正確,是msi試圖在文件夾甚至創建之前複製文件夾。這會導致文件夾不存在於它們應該被複制的區域,因爲沒有任何可複製的地方。有沒有一種方法可以確保在嘗試複製文件之前生成文件?有沒有更好的方法去解決這個問題,我沒有看到?
編輯:
我將盡力澄清這一點。我想要做的是以下(僞):
1)看看選項文件(hi.opt)是否存在於c:\ options中,如果沒有創建它。 2)將該文件複製到c:\ options \ opt2015。
我爲3個不同的文件夾做了3次。我使用NeverOverwrite參數在c:\ options文件夾中使用Wix創建初始文件。這部分工作很棒;文件創建時沒有問題,如果它們已經存在,則不會覆蓋它們。問題出在哪裏,是我使用CopyFile Wix命令的第二步。這隻會將一些文件從c:\ options文件夾複製到c:\ options \ opt2015文件夾中。根據系統的初始設置(如果c:\ options中的文件存在或不存在),某些文件將被複制,而其他文件則不會複製。這不是隨機的,結果每次都是可重複的,但似乎沒有理由爲什麼某些文件複製,而其他文件不依賴於系統的初始設置。
我希望這是有道理的,並且有點更清楚,但我認爲這會讓事情變得更糟!這是奇怪的行爲,因爲對我來說,它看起來像一切都應該工作,但它不(但並不是每個錯誤)。
EDIT2:
後更多的工作,創造其運行完全維克斯的超出了我和我的團隊已經確定,這些文件就是不被維克斯即使他們確實存在在安裝過程中出現了VB腳本。我們沒有發現任何權限問題,並且安裝以管理員身份在管理員帳戶中運行。通過VBS或通過Wix CopyFile命令執行復制,結果相同;系統中已存在的文件不會被複制。還有什麼想法?如果我們找到解決方案,我一定會發布它,因爲這太奇怪了。
我現在發現如果文件存在,它有時無法工作。我將嘗試使用自定義操作。 – 2015-04-03 17:05:31