Wixtoolset,根据安装程序的位置指定文件的源

问题描述 投票:0回答:1

如何根据我运行的安装程序所在的位置指定文件的来源。例如,我想将安装程序文件夹中的一些文件(例如位于桌面或下载的文件中)放入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
1个回答
0
投票

我有一个开源项目,可以更轻松地创建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>

如果你曾经重构文件来自哪里,你只需要更新一行。

© www.soinside.com 2019 - 2024. All rights reserved.