在我的.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'
我怎么说“文件已经存在于安装目录中,在安装过程中使用该文件,并且现在不对其进行验证”?
答案 0 :(得分: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>