[英]How to Copy File from wix installer project to local users system post installation?
我使用 WIX 工具集創建了一個安裝程序。 現在我想在安裝后將文件復制到用戶的本地系統。 我已經嘗試了使用CopyFile
元素的所有可能方法,但無法完成問題。
我嘗試使用CopyFile
元素,但無法復制文件。
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="SAFTRUS_Application" />
<Directory Id="MyProgramDir" Name="SAFTRUS_Application">
<Directory Id="CopiedFiles" Name="Copied Files" />
</Directory>
</Directory>
</Directory>
<Fragment>
<DirectoryRef Id="MyProgramDir">
<Component Id="sAFtrUS" Guid="E8A58B7B-F031-4548-9BDD-
7A6796C8460D">
<File Id="FILE_InstallMeTXT" Source="ReadMe.rtf" KeyPath="yes">
<CopyFile Id="Copy_InstallMeTXT"
DestinationDirectory="CopiedFiles"
DestinationName="ReadMe1.rtf" />
</File>
</Component>
</DirectoryRef>
該文件應從安裝程序復制到最終用戶的系統。 文件名為ReadMe.rtf
,此文件包含在我的安裝項目中。 我想將此文件復制到安裝應用程序的用戶本地系統。
因此,如果有人有解決方案,請幫助我。
我使用了CustomAction來做到這一點。 “復制”不是可執行文件,而是 cmd.exe 中可用的命令,因此您必須從 cmd.exe 進程中運行“復制”
<CustomAction Id="copy.file" Directory="INSTALLFOLDER"
ExeCommand="[System64Folder]cmd.exe /c "copy ReadMe.rtf [WindowsFolder]System32\ReadMe.rtf""
Return="check" Execute="deferred" Impersonate="no" />
然后在InstallExecuteSequence的Custom元素中引用該操作
<InstallExecuteSequence>
<Custom Action="copy.file" After="InstallFiles" />
</InstallExecuteSequence>
如果用於運行“復制”命令的 cmd.exe 不是來自同一個文件夾,我在將文件復制到 C:\Windows\System32\drivers 時遇到了問題。 例如,如果使用上面的 [SystemFolder [SystemFolder]
(在 64 位 Windows 上設置為 C:\Windows\SysWOW64)而不是[System64Folder]
,它將不起作用。 也沒有給出奇怪的錯誤。 從安裝日志中,看起來 copy.file 成功了。 需要注意的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.