我正在爲基於WIX的安裝程序添加功能。這是我第一次使用WIX,所以這對我來說都很新穎。使用WIX工具集下載和複製文件
我想要做的是允許用戶在使用msiexec
時傳遞auth令牌命令行參數。
然後安裝程序將使用auth令牌進行API調用。如果認證失敗,安裝程序將終止。否則,安裝程序將使用API下載文件並將其複製到安裝目錄(最有可能在Program Files
下)。
我已經設法讀取WIX中的命令行參數作爲屬性,並在C#中創建了一個CustomAction來處理認證/下載文件。
我正在努力的部分是讓CustomAction將文件複製到安裝位置,因爲它沒有寫入位置的權限。
我可以通過設置execute="deffered"
和"impersonate=no
以提升的權限運行它,但是這會妨礙我讀取session
對象的屬性。
另一種可能的選擇是將文件保存到CustomAction中的臨時位置(該工作不需要提升權限)並設置新屬性。然後我可以使用CopyFile
組件和SourceProperty
將該文件複製到目標位置。
但是,我無法弄清楚,如何讓CustomAction在CopyFile
組件之前運行,因爲只有在CustomAction運行之後纔會設置該屬性。它只是簡單地運行CustomAction before
安裝的特定部分,還是有更多的?
它應該像在「MoveFiles」之前安排它一樣簡單(http://wixtoolset.org/documentation/manual/v3/xsd/wix/copyfile.html提到了DuplicateFiles和MoveFiles表,我假設它使用MoveFiles表定義一個不引用文件元素的ID的CopyFile),但我添加了一個答案,讓您可以運行您的customaction並將文件下載到安裝目錄。 –