В 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'

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

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>
Другие вопросы по тегам