Как в Wix избежать жесткого кодирования источника файла для файла, который уже существует в каталоге установки?

В моем файле .wxs у меня есть следующее объявление файла. Этот файл уже существует в каталоге установки. Он не копируется из исходного каталога. Мне нужно обновить его с помощью util:XmlConfig во время установки. Часть XmlConfig работает.

<File Id="AppConfig" Name="Dynamics.exe.config" Source="C:\Program Files (x86)\Microsoft Dynamics\GP2010\Dynamics.exe.config" />

Проблема в том, что я не могу предположить, что файл всегда будет существовать в одном и том же месте. Я бы очень хотел просто сослаться на это так:

<File Id="AppConfig" Name="[#INSTALLDIR]\Dynamics.exe.config" />

Однако это не удается со следующим сообщением:

> light.exe ....
The system cannot find the file 'SourceDir\....\[#INSTALLDIR]\Dynamics.exe.config'

Как я могу сказать, что «файл уже существует в каталоге установки, использовать этот файл во время установки и не проверять его сейчас»?


person Chad Braun-Duin    schedule 09.07.2013    source источник


Ответы (1)


Каталоги доступны в квадратных скобках, как если бы они были обычными свойствами. Если вам не нужно устанавливать Dynamics.exe.config, а просто получить к нему доступ с помощью элементов XmlConfig, вы можете просто сослаться на этот каталог и не нужно возиться с элементом File:

<Component Id="Dynamics.exe.config" KeyPath="yes" Guid="*">
  <util:XmlConfig Id="Dynamics.exe.config.XmlConfig1"
                  On="install"
                  Action="..."
                  File="[INSTALLDIR]\Dynamics.exe.config"
                  ...
                  />
  <util:XmlConfig Id="Dynamics.exe.config.XmlConfig2"
                  On="install"
                  Action="..."
                  File="[INSTALLDIR]\Dynamics.exe.config"
                  ...
                  />
</Component>
person Stephen Jennings    schedule 15.09.2013