我有一个使用 Burn 的安装程序,并且在我的(64 位)开发机器上构建安装程序没有问题。在我们的(64 位)构建服务器上,我收到此错误:
[步骤 1/3] 2014-04-24 10:40:09,800 [2796] WARN JetBrains.Container.Log4netDefaultLoggerInitializer - 当前域中未处理的异常:System.BadImageFormatException:无法加载文件或程序集'file:///C: \Program Files (x86)\WiX Toolset v3.8\bin\Heat.exe' 或其依赖项之一。试图加载格式不正确的程序。
从不正确的格式警告中,很明显我发生了 x86/x64 冲突,但是在哪里呢?带有安装程序的解决方案中的所有项目都设置为任何 CPU,并且 TeamCity 中的构建参数将构建为 x64。我的安装程序项目设置为 x86,我认为这是问题所在。我尝试将安装程序设置为 x64,但随后出现如下错误:
这个 64BitComponent MyAppPool 使用 32BitDirectory 安装
我认为 TeamCity 正在尝试将 x86 Burn.exe 作为 x64 运行(因为这就是我配置构建的方式)因此出现了问题,但解决方案是什么?我需要构建到 x64,所以将构建设置为 x86 不是一个选项。