繁体   English   中英

WiX卸载文件和安装时的注册表键

[英]WiX UNinstalling files and Reg Keys on Install

我的Windows窗体应用程序上有一个WiX安装程序。 我总是进行重大升级,因此每个版本都将充当安装程序(新客户)和更新程序(以前的客户)。 我遇到的问题是安装程序正在删除先前由安装程序安装并随后被修改的注册表项和配置文件。

例如,在初始安装时,我将文件放在C:\\ programdata \\ myConfig.xml中。 安装后,用户通过用config.xml替换文件来修改文件。 当我的安装程序在升级上运行时,安装程​​序将删除此文件。 当安装程序运行且文件不存在时,它将正确安装myconfig.xml。

我希望安装程序不要覆盖现有文件,也不要删除它。

<DirectoryRef Id="myFolder">
  <Component Id="CMP_ConfigFile" Guid="{some guid}" NeverOverwrite="yes">
    <File Id="myConfiguration.xml" Source="RefFiles\myConfig\xml" KeyPath="yes"/>
  </Component>
</DirectoryRef>

上面是我的WiX安装程序的代码块。 我的注册表项存在相同的问题。 WiX会在升级时删除它们。

<Component Id="RegistryEntriesOne" Guid="{some guid}" Directory="TARGETDIR" NeverOverwrite="yes" >
  <RegistryKey Root="HKLM" Key="SOFTWARE\myCompany\myApp" Action="create">
    <RegistryValue Type ="string" Name="ConfigurationFilePath" Value="C:\ProgramData\myConfig.xml" KeyPath="yes"/>
  </RegistryKey>
</Component>

思考? 库尔特

您需要将Permanent属性添加到组件并将其设置为yes,这将防止组件被卸载。

<Component Id="CMP_ConfigFile" Guid="{some guid}" NeverOverwrite="yes" Permanent="yes">
  <File Id="myConfiguration.xml" Source="RefFiles\myConfig\xml" KeyPath="yes"/>
</Component>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM