如何使用 WiX 将 INSTALLFOLDER 位置插入到 .settings 文件中?

How Do I insert the INSTALLFOLDER-location into a .settings file with WiX?

如标​​题所示,我在将自定义安装位置 INSTALLFOLDER 插入 .settings 文件时遇到了很大的问题。它是 WiX 通常使用的位置:

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramFilesFolder">
    <Directory Id="ToplevelFolder" Name="blaa">
      <Directory Id="INSTALLFOLDER" Name="bluub">
       ...so on....

好处是 .settings 文件是用 XML 编写的,尽管它没有明确地以 .xml 结尾。另外,我不是在谈论 Settings.settings 文件(来自 .NET 环境)

这就是说,我已经尝试过 WiX 集成 XML 编辑扩展,方法是暂时将 .settings 更改为 .xml 文件以插入字符串(更准确地说是 INSTALLFOLDER 位置)然后使用 name="bla.settings" 标签将其重命名回 .settings 文件。 即使 the.msi 的构建工作完美,安装本身也会溢出错误代码

"Failed to open XML file, system error: -2147024786"

大约 80-90% 的安装完成后。

我已经搜索了 Days 的所有内容,但没有得到任何进一步的结果,所以非常感谢您的帮助!

PS:我已经听说自定义操作可以完成这里的工作,甚至可能是解决方案。但是,我缺乏关于如何构建一个恰好满足我需要的洞察力。再次提供信息 /Tutorials/Guids 将不胜感激!

编辑:这就是在我的代码中使用扩展的样子:

<File Id="fil0CCD9555A0AF7A2FA45DFC80F03955CB" KeyPath="yes" Name="adtf_devenv.settings" Source="!(wix.HelpDir)\adtf-2.9.0-win64-vc100\bin\adtf_devenv.xml" />
<util:XmlFile Id="setDIR" Action="createElement" Permanent="yes" File="[#adtf_devenv.xml]" ElementPath="/[adtf:export]" Name="file" Value='Artefacts="INSTALLFOLDER\Artefacts\" name="Stadtpilot"' />

您可以用 C# 编写自定义操作,然后在您的 wix 文件中调用它。这是一个很好的教程,解释了如何编写和使用自定义操作。

http://blogs.msdn.com/b/jschaffe/archive/2012/10/23/creating-wix-custom-actions-in-c-and-passing-parameters.aspx