如何根据我运行的安装程序所在的位置指定文件的来源。例如,我想将安装程序文件夹中的一些文件(例如位于桌面或下载的文件中)放入C / programfiles中的指定路径中。
<ComponentGroup Id="ProgramFilesFolder_files" Directory="INSTALLFOLDER">
<Component Id="Program.exe" Guid="d0c868d9-4d5b-41f0-9ce8-d655ac80ee7c">
<File Id="Program.exe" Name="Program.exe" Source="???" />
如何设置source属性?
我是否理解我应该将源设置为:
Source="..\Program.exe"
这是否指的是运行MSI文件的位置。例如,如果我将我的安装程序文件与我需要的源文件一起放入。我是否能够将上面的代码用作移动安装程序时更改的相对路径。所以我可以从其他地方运行安装程序,只需要安装程序与我想为源代码编程的文件位于同一文件夹中?
我有一个开源项目,可以更轻松地创建WiX安装程序。其中一个功能是相对文件路径。你可以在这里读到它。
https://github.com/iswix-llc/iswix-tutorials
本质上,项目模板使用名为SourceDir的XPI来创建源文件查找位置的抽象。这与WXS文件有关。 GUI工具使用WXS和SourceDir的位置来枚举拖放操作的源结构,然后使用它来创建类似的File元素。
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?define ComponentRules="OneToOne"?>
<!-- SourceDir instructs IsWiX the location of the directory that contains files for this merge module -->
<?define SourceDir="..\Deploy"?>
<Module Id="DesktopApplicationMM" Language="1033" Version="1.0.0.0">
<Package Id="04cfbb1b-8105-4f3e-9b7a-c1d5354dc670" Manufacturer="DesktopApplicationMM" InstallerVersion="200" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="DesktopFolder" />
<Directory Id="MergeRedirectFolder">
<Component Id="owc17DECDE7A34AF545285829FF09EF24AE" Guid="4791fdfe-28ff-3c07-2f9e-e2f418c712f8">
<File Id="owf17DECDE7A34AF545285829FF09EF24AE" Source="$(var.SourceDir)\DesktopApplication.exe" KeyPath="yes">
<Shortcut Id="sc06A337B51AED2DF7E22F894A213D2792" Name="Desktop Application" Directory="DesktopFolder" />
</File>
</Component>
</Directory>
</Directory>
<ComponentGroupRef Id="Custom" />
</Module>
</Wix>
如果你曾经重构文件来自哪里,你只需要更新一行。