1

在我的 .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'

我怎么能说“该文件已存在于安装目录中,在安装过程中使用该文件,现在不对其进行验证”?

4

1 回答 1

0

目录可以使用括号表示法,就好像它们是常规属性一样。如果您不需要安装 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>
于 2013-09-15T00:05:06.280 回答