我有Visual Studio 2012、WiX 3.8 安装项目和Burn bootstrapper。如果我以 32 位机器为目标,一切正常。我想为 32 位和 64 位本地化创建两个单独的 MSI 文件。但是,我在配置管理器中找不到 64 位目标选项。因此,我手动创建了一个 x64 目标并尝试编译安装项目。但它完全失败了。我无法包含以下文件:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
<?include $(var.ProjectDir)\Includes\Variables.wxi ?>
<Fragment>
<CustomAction somecustomaction />
...
More custom actions...
...
</Fragment>
</Wix>
我得到的错误是:
错误 33 架构验证失败,第 1 行第 206 列出现以下错误:命名空间“ http://schemas.microsoft.com/wix/2006/wi ”中的元素“Wix”不能包含文本。预期的可能元素列表:“捆绑产品模块补丁片段 PatchCreation”。somefile.wxs 2 1 Some.Installer Installer_x64\Some.Installer)
当我删除包含标签时,它会编译。但是我需要在引用一些变量的其他文件中使用此类包含指令。我真的不明白这里的问题。包含标签非常适合 32 位,那么如果我将它与 64 位目标一起使用它为什么会引发错误?这里有什么问题?
是否有为不同平台创建设置的最佳实践?我还在使用 Burn 引导程序和英语和德语的本地化。我在 Stack Overflow 上遇到过类似的问题,但到目前为止没有任何帮助。