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中的另一个位置_Wix_Windows Installer_File Copying - Fatal编程技术网

安装时将文件从安装位置复制到wix中的另一个位置

安装时将文件从安装位置复制到wix中的另一个位置,wix,windows-installer,file-copying,Wix,Windows Installer,File Copying,我已经创建了一个msi设置文件,其中包括“示例”文件夹中的一些文件,这些文件应该复制到临时文件夹中。有人建议怎么做吗?类似这样的建议: <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFilesFolder"> <Directory Id="MyVendor" Name="MyVendor"> <Directory

我已经创建了一个
msi
设置文件,其中包括“示例”文件夹中的一些文件,这些文件应该复制到临时文件夹中。有人建议怎么做吗?

类似这样的建议:

   <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="MyVendor" Name="MyVendor">
            <Directory Id="INSTALLDIR" Name="MyDir">
                <Component Id="MyFileId" Guid="...G1...">
                    <File Id="MyFileId" Name="MyFile" Source="...blabla...\MyFile" KeyPath="yes" >
                    </File>
                </Component>


     <DirectoryRef Id="TARGETDIR">
            <Component Id="MyFileCopyId" Guid="...G2...">
                <RemoveFile Id="MyFileRemoveId" Name="MyFile" On="install" Directory="MyCopyDir" />
                <CopyFile Id="MyFileCopyId" FileId="MyFileId" DestinationDirectory="MyCopyDir" />
            </Component>


    <Feature Id="MyFeature" ... >
            <ComponentRef Id="MyFileId" />
            <ComponentRef Id="MyFileCopyId" />


重要的Xml元素是CopyFile。您需要创建一个新组件,它是第一个组件的副本(当然,具有不同的ID、GUID等等)。这两个组件都需要在功能中声明。

元素是您的朋友。可以将其嵌套在原始元素下多次,具体取决于需要复制的次数。放置正确的目标文件夹,让Windows Installer完成其余工作。

谢谢您的回复,我有一些疑问1)。Guid的值是多少。2)。如果我设置DestinationDirectory=“%TEMP%”,那么我的文件将复制到TEMP文件夹中。3)我可以设置File元素的Source=“myfile”属性吗。Guid2只是一个全新的Guid。它与任何东西都没有关系,但是wix/msi需要它。您的“temp”文件夹将是示例中的MyCopyDir。源代码基本上是一个本地路径,所以您可以放置任何您想要的内容,但您应该已经在wix文件中设置了该部分。它与副本无关。您的意思是,如果我设置DestinationDirectory=“MyCopyDir”,那么我的文件将被复制到~[user]/LOCALS~1\Temp文件夹中。我不需要做任何其他事情。我还想复制“Sample”文件夹中的所有文件,所以在这种情况下,文件的Source属性的值是多少element@Sukhi:将CopyFile嵌套在File下,您永远不会猜到您需要将什么放入Source中我不能这样做,因为在“示例”中文件夹有100多个文件。要将所有文件复制到临时文件夹或类似的文件夹,我是否必须设置Source=*.*。是的,您可以指定通配符并将文件夹中的所有文件复制到目标文件夹。这可能会非常优雅,因为它需要一个CopyFile元素用于整个文件夹。但是,如果生成该文件夹的*.WxS文件,可以考虑向输出应用XSL转换,以将ActoFig添加到每个文件中。但这是另一种选择,如果前面的方法对你有效,就坚持下去:)