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 CopyFile元素将更改/修复时的文件复制到系统文件夹,而不将其安装到目标?_Wix_Windows Installer_Wix3_File Copying - Fatal编程技术网

如何使用WIX CopyFile元素将更改/修复时的文件复制到系统文件夹,而不将其安装到目标?

如何使用WIX CopyFile元素将更改/修复时的文件复制到系统文件夹,而不将其安装到目标?,wix,windows-installer,wix3,file-copying,Wix,Windows Installer,Wix3,File Copying,在使用WIX进行msi设置时,我遇到了一个与更改/修复时执行CopyFile有关的问题 我有一个功能,它有一个组件,可以将文件从源文件夹复制/移动到用户系统中已经存在的文件夹。它不是我的应用程序的文件夹。我只是移动此文件,而不是将其安装到目标。如果我使用完整的安装程序安装此功能,它可以正常工作。但是,在初次安装时,我选择不安装此功能,然后在“更改”期间尝试安装它。除CopyFile组件外,此功能中的所有其他自定义操作/组件都将执行/安装。这对我的设置至关重要,如果不复制,我的设置将失败 只是想知

在使用WIX进行msi设置时,我遇到了一个与更改/修复时执行CopyFile有关的问题

我有一个功能,它有一个组件,可以将文件从源文件夹复制/移动到用户系统中已经存在的文件夹。它不是我的应用程序的文件夹。我只是移动此文件,而不是将其安装到目标。如果我使用完整的安装程序安装此功能,它可以正常工作。但是,在初次安装时,我选择不安装此功能,然后在“更改”期间尝试安装它。除CopyFile组件外,此功能中的所有其他自定义操作/组件都将执行/安装。这对我的设置至关重要,如果不复制,我的设置将失败


只是想知道是否有人找到了类似问题的解决方案,或者曾经遇到过类似的问题

包含CopyFile操作的组件配置不正确。它应该有一个实际的文件或注册表项作为键路径

尽管Windows Installer使用组件来管理资源,但组件密钥路径是决定是否安装组件的主要因素


因此,将永远不会安装没有资源作为密钥路径的组件,也永远不会执行其包含的CopyFile操作。

包含CopyFile操作的组件配置不正确。它应该有一个实际的文件或注册表项作为键路径

尽管Windows Installer使用组件来管理资源,但组件密钥路径是决定是否安装组件的主要因素


因此,没有资源作为密钥路径的组件将永远不会被安装,它包含的CopyFile操作也永远不会被执行。

您能将文件安装到该位置而不是从另一个位置复制它吗?是的,我已经尝试过了,这是可行的。在我或其他人找到解决方案之前,我将使用这种方法,但理想情况下,我希望防止重复,以减少安装的大小。因此,您需要在两个位置都安装文件,是吗?WiX应该处理这种情况,并且在CAB中只保留文件的一个版本。msi日志在“更改”模式下说什么?应该有它跳过复制此文件的原因。我明白了。目标文件是添加特征中组件的关键文件吗?在执行“更改”安装时,MSI仅检查是否存在密钥文件。如果密钥文件存在,则将跳过该组件。您是否使用了详细日志:
/lvx*
?您是否可以将文件安装到该位置,而不是从另一个位置复制它?是的,我已经尝试过了,这很有效。在我或其他人找到解决方案之前,我将使用这种方法,但理想情况下,我希望防止重复,以减少安装的大小。因此,您需要在两个位置都安装文件,是吗?WiX应该处理这种情况,并且在CAB中只保留文件的一个版本。msi日志在“更改”模式下说什么?应该有它跳过复制此文件的原因。我明白了。目标文件是添加特征中组件的关键文件吗?在执行“更改”安装时,MSI仅检查是否存在密钥文件。如果密钥文件存在,则将跳过该组件。您是否使用了详细日志:
/lvx*
?我已将该文件放置在此组件中,它是这样工作的。但问题是,它复制了我最初试图避免的这个文件。我还将KeyPath属性设置为true。我将尝试将注册表项与CopyFile一起放置,看看是否有效。将很快报告。我尝试了以下操作,但运气不佳,我已将文件放置在此组件中,并且它以这种方式工作。但问题是,它复制了我最初试图避免的这个文件。我还将KeyPath属性设置为true。我将尝试将注册表项与CopyFile一起放置,看看是否有效。我很快就要报告了。我试着跟踪,但没有成功