安装时将文件从安装位置复制到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添加到每个文件中。但这是另一种选择,如果前面的方法对你有效,就坚持下去:)