1

我正在尝试使用 heat.exe(版本 3.5.2519.0)来收集一个目录,其中包含大约 100 个文件和一些子目录。我的命令看起来像这样......

heat.exe dir ./dir1/dir2/dir3/dir4 -sw5150 -out output.wxs

但是,当 heat.exe 遇到我目录中的特定 .ini 文件时,它会出现以下 Windows 错误对话框...

heat.exe - Application Error
----------------------------
The instruction at "0x04881351" referenced memory at "0x049795fc". The memory could not be "read".
Click on OK to terminate the program

我已将问题隔离到一个特定的 INI 文件,因为当我修改任何部分/键/值(例如将“SYNTH”更改为“SYNTH2”)时,热量运行正常。原来的INI文件是这样的……

[PLUGIN]
SYNTH=MFiSynth.dll 
AUDIO=MFiAudio.dll
  1. 有人可以解释一下热量对 INI 文件的一般作用吗?它实际上是在尝试读取和处理它们的内容吗?
  2. 我的特定文件是什么导致此内存访问错误?我怎样才能解决这个问题?

我的愿望和假设是让 heat 简单地将文件复制到 .wxs 文件中,仅此而已,但看起来它的作用不止于此。

4

1 回答 1

1

经过多次试验和错误,我发现我需要在我的 heat 命令中添加“-sreg”选项。这将防止热量实际处理 INI 文件(这也有助于解决我在使用特定 DLL 时遇到的类似问题)。

于 2011-12-07T09:17:12.967 回答