Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix 我们可以使用KeyPath=";否";用",;“组件”;元素以及注册表_Wix_Wix3.5_Wix3_Wix3.7_Wix3.6 - Fatal编程技术网

Wix 我们可以使用KeyPath=";否";用",;“组件”;元素以及注册表

Wix 我们可以使用KeyPath=";否";用",;“组件”;元素以及注册表,wix,wix3.5,wix3,wix3.7,wix3.6,Wix,Wix3.5,Wix3,Wix3.7,Wix3.6,我已经为我的项目生成了windows安装程序包(.msi文件) 我安装了安装程序,但之后无法启动应用程序 因此,我正在检查.wxs文件以找到根本原因并找到一些可疑的代码 <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> <Fragment> <DirectoryRef Id="INSTALLDIR"> <!-- This component creates EMR v3.0 R

我已经为我的项目生成了windows安装程序包(.msi文件)

我安装了安装程序,但之后无法启动应用程序

因此,我正在检查.wxs文件以找到根本原因并找到一些可疑的代码

<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
  <Fragment>
    <DirectoryRef Id="INSTALLDIR">

      <!-- This component creates EMR v3.0 Registry Entries-->

      <Component Id="RegistryEntries_Set1" Guid="1A20601C-77EA-11E0-98C2-1AD64824019B" KeyPath="no">
        <!-- To remove stray registry entries under HKLM,HKU and HKCU registry hives-->
        <!--<Registry Id="Delete$(var.CompanyName)Node" Root="HKLM" Key="Software\$(var.CompanyName)\$(var.ProductName)" Action="removeKeyOnUninstall" />-->
        <RegistryKey Id="Delete$(var.CompanyName)Node" Root="HKLM" Key="Software\$(var.CompanyName)\$(var.ProductName)" Action="createAndRemoveOnUninstall" />
        <RegistryKey Id="Delete$(var.CompanyName)Node2" Root="HKU" Key=".DEFAULT\Software\$(var.CompanyName)" Action="createAndRemoveOnUninstall" />
        <RegistryKey Id="Delete$(var.CompanyName)Node3" Root="HKCU" Key="Software\$(var.CompanyName)" Action="createAndRemoveOnUninstall" />

我理解,如果Keypath=“yes”表示windows installer认为Keypath资源存在,并且不会再次安装

如果Keypath=“否”,它将安装

在本文中,我想知道KeyPath=“no”是什么意思,还想了解这个代码片段

组件将在此处执行什么操作?

从中,如果组件中的键路径值未设置为“是”,它将自动尝试选择组件内部声明的一个元素作为键路径

因此,在示例中显示的内容中,组件的第一个RegistryKey元素将被声明为KeyPath。您的代码示例将在安装时创建3个注册表项(并在卸载时将其删除),并考虑如果在系统上自动选择了作为关键路径的注册表项,则安装该组件。