处理 INI 文件时 WiX HEAT 出错

发布于 2024-12-18 13:25:24 字数 796 浏览 3 评论 0原文

我正在尝试使用 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. 有人可以解释一下 heat 试图对 INI 文件做什么 一般的?它实际上是在尝试读取和处理它们的内容吗?
  2. 我的特定文件是什么导致了这次内存访问 错误?我该如何解决这个问题?

我的愿望和假设是 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
  1. Can somebody explain what heat tries to do with INI files in
    general? Is it actually trying to read and process their contents?
  2. 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

终止放荡 2024-12-25 13:25:24

经过多次尝试和错误,我发现我需要将“-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).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文