Installation 将外部文件复制到安装目录WiX
我也有类似的问题。我有一个Installation 将外部文件复制到安装目录WiX,installation,wix,windows-installer,wix3.5,Installation,Wix,Windows Installer,Wix3.5,我也有类似的问题。我有一个.config文件,我想从源目录(我的.msi文件所在的位置)复制到我的安装目录 我尝试了几件事: 我尝试的第一件事: <DirectoryRef Id="ProgramFilesFolder"> <Component Id="$(var.productFamily)$(var.productSummary).config" Guid="$(var.GUID_CMP_DemoConfig)" KeyPath="yes"> <Co
.config
文件,我想从源目录(我的.msi
文件所在的位置)复制到我的安装目录
我尝试了几件事:
我尝试的第一件事:
<DirectoryRef Id="ProgramFilesFolder">
<Component Id="$(var.productFamily)$(var.productSummary).config" Guid="$(var.GUID_CMP_DemoConfig)" KeyPath="yes">
<CopyFile Id="$(var.productFamily)$(var.productSummary).config"
SourceName="$(var.productFamily)$(var.productSummary).exe.config"
SourceProperty="SOURCEDIR"
DestinationDirectory="$(var.productFamily)$(var.productType)"
DestinationName="$(var.productFamily)$(var.productSummary).exe.config"
>
</CopyFile>
</Component>
</DirectoryRef>
但是这个方法失败了,因为它试图在安装应用程序之前复制文件,所以我的目录仍然不存在
我试过的第二件事:
<DirectoryRef Id="ProgramFilesFolder">
<Component Id="$(var.productFamily)$(var.productSummary).config" Guid="$(var.GUID_CMP_DemoConfig)" KeyPath="yes">
<CopyFile Id="$(var.productFamily)$(var.productSummary).config"
SourceName="$(var.productFamily)$(var.productSummary).exe.config"
SourceProperty="SOURCEDIR"
DestinationDirectory="$(var.productFamily)$(var.productType)"
DestinationName="$(var.productFamily)$(var.productSummary).exe.config"
>
</CopyFile>
</Component>
</DirectoryRef>
将其添加为安装程序的另一个组件
<Component Id="$(var.productFamily)$(var.productSummary).config" Guid="$(var.GUID_CMP_DemoConfig)">
<File Id="$(var.productFamily)$(var.productSummary).config"
Name="$(var.productFamily)$(var.productSummary).exe.config"
DiskId="1" KeyPath="yes"
Source="$(var.productFamily)$(var.productSummary).exe.config" >
</File>
</Component>
有了这个,我应该能够从安装程序的Release
文件夹复制到我的INSTALLDIR
,但是当我在VS 2010
上构建项目时,它找不到文件
我试过的第三件事:
<DirectoryRef Id="ProgramFilesFolder">
<Component Id="$(var.productFamily)$(var.productSummary).config" Guid="$(var.GUID_CMP_DemoConfig)" KeyPath="yes">
<CopyFile Id="$(var.productFamily)$(var.productSummary).config"
SourceName="$(var.productFamily)$(var.productSummary).exe.config"
SourceProperty="SOURCEDIR"
DestinationDirectory="$(var.productFamily)$(var.productType)"
DestinationName="$(var.productFamily)$(var.productSummary).exe.config"
>
</CopyFile>
</Component>
</DirectoryRef>
我尝试将SOURCEDIR
var更改为我自己的变量,这样我就可以将其用作常规组件,但它不允许我更改变量名。尝试更改时,它会显示:
heat.exe:错误HEAT0319:'-out'或'-o'参数必须指定文件路径。
所以我只想从我的.msi
所在的位置复制一个文件,但我仍然无法做到
有什么想法吗?您可以使用File元素上的Compressed属性在生成时将文件从压缩到MSI中排除。然后您可以逐个替换此文件的内容。像普通一样编写,像普通一样安装,一切都会很好,无需做任何花哨的事情 例如,以下内容添加了
Compressed
属性,以覆盖Package
元素设置的默认压缩:
<Component>
<File Source="$(var.productFamily)$(var.productSummary).exe.config"
Compressed='no' />
</File>
</Component>
可能重复的问题我建议重复,因为听起来你做的事情与另一个问题中回答的相同。如果你做的事情不同,请更新问题的第一段,解释你的问题与重复的问题有何不同?@RobMensching我也这么做,但正如我所说,t他们的解决方案对我不起作用。问题没有什么不同,但我不明白答案…@Rob-我的印象是DuplicateFiles只能复制安装程序安装的文件。他的描述是他想从SourceDir复制一个文件。我想他正试图创建一个安装程序,其中包含一个与您不同的点t重建它。我正在尝试创建一个安装程序,该安装程序会像组件一样获取外部文件并将其复制到项目中,但此文件位于.msi
所在的位置。重建它不是问题。问题是我尝试的任何解决方案都不起作用:(