【发布时间】:2014-03-03 17:58:22
【问题描述】:
我正在尝试在“安装”(和“卸载”)中删除文件夹,但该文件夹仅在“卸载”时被删除。
任何提示如何做到这一点?
<Property Id="PACKAGEFOLDER">
<RegistrySearch Root="HKLM" Key="$(var.RegKey)" Type="raw" Id="PKGFOLDER_REGSEARCH" Name="PkgDir" />
</Property>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="PACKAGE" Name="$(var.PkgFolder)">
<Component Id="PackagesFiles" Guid="$(var.FilesGUID)">
<RegistryValue Root="HKLM" Key="$(var.RegKey)" Name="PkgDir" Type="string" Value="[PACKAGE]" KeyPath="yes" />
<util:RemoveFolderEx On="both" Property="PACKAGEFOLDER" />
</Component>
</Directory>
</Directory>
</Directory>
刚刚注意到: 如果 RegKey 在安装开始之前在注册表中可用,它将起作用:
WixRemoveFoldersEx:递归路径:C:\Program Files (x86)... 行:wrf945C37509CA5EEDC2367957D5F072DFF。微星 (s) (94!A8) [19:17:55:185]:属性更改:添加 _UNOPACKAGEFOLDER_0 属性。 它的值是 'C:\Program Files (x86)... MSI (s) (94:D4) [19:17:55:185]:执行操作:CostInitialize
但如果 RegKey 不在注册表中,日志会显示:
WixRemoveFoldersEx:错误 0x80070057:缺少文件夹属性: 行的应用程序文件夹:wrfA308D08284221970F6338358BFB75917 CustomAction WixRemoveFoldersEx 返回实际错误代码 1603 但 由于继续标记 MSI (s) (84:50),将转换为成功 [19:29:08:529]:执行操作:CostInitialize
是否可以在设置属性“PACKAGEFOLDER”之前写入RegKey?
【问题讨论】:
-
删除“KeyPath”似乎没什么区别
标签: wix