处理 INI 文件时 WiX HEAT 出错
我正在尝试使用 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
- 有人可以解释一下 heat 试图对 INI 文件做什么 一般的?它实际上是在尝试读取和处理它们的内容吗?
- 我的特定文件是什么导致了这次内存访问 错误?我该如何解决这个问题?
我的愿望和假设是 heat 只需将文件复制到 .wxs 文件中即可,但看起来它所做的不止于此。
I'm trying to use heat.exe (version 3.5.2519.0) to harvest a directory, which contains about 100 files and a few subdirectories. My command looks something like this...
heat.exe dir ./dir1/dir2/dir3/dir4 -sw5150 -out output.wxs
However, when heat.exe comes upon a particular .ini file in my directory, it errors out with the following Windows error dialog...
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
I've isolated the problem to a particular INI file because when I modify any of the section/keys/values (e.g. change "SYNTH" to "SYNTH2"), heat runs to completion fine. The original INI file looks like this...
[PLUGIN]
SYNTH=MFiSynth.dll
AUDIO=MFiAudio.dll
- Can somebody explain what heat tries to do with INI files in
general? Is it actually trying to read and process their contents? - What is it about my particular file that causes this memory access
error? And how can I get around this problem?
My wish and assumption was for heat to simply copy over files into a .wxs file and that's it, but it looks like it's doing more than that.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
经过多次尝试和错误,我发现我需要将“-sreg”选项添加到我的 heat 命令中。这将防止热量实际处理 INI 文件(这也有助于解决我在使用特定 DLL 时遇到的类似问题)。
After much trial and error, I found that I needed to add the "-sreg" option to my heat command. This will prevent heat from actually processing the INI file (this also helped to resolve a similar issue I had with a particular DLL).