gpt4 book ai didi

debugging - 调试 NSIS 安装程序的方法?

转载 作者:行者123 更新时间:2023-12-03 23:43:28 25 4
gpt4 key购买 nike

尽管 NSIS 允许您构建非常强大的安装程序,但 NSIS 使用的“低级语言让我想起了汇编”很容易出错,因此,当您希望安装程序执行除编写文件之外的更复杂的操作时,调试是必须的。

到目前为止,我使用了以下类似 Dr Printf 的调试技术:

  • .nsh我在任何地方都包含的文件,我定义了一个 NSIS_DEBUG_MSG宏根据 DEBUG 的值定义
  • 如果 DEBUG开启时,宏将触发带有调试消息
  • 的 MessageBox
  • 如果 DEBUG关闭,宏将不执行任何操作

  • 这种方法对我很有帮助,但它存在一些缺点:
  • 它需要我填写代码,我认为这是调用 NSIS_DEBUG_MSG 失败的代码。并多次重建安装程序,直到我获得足够的信息来解决问题
  • 如果我的问题是安装程序本身失败(如果安装程序死了),这对我没有好处

  • 所以我想知道的是您对这些安装程序使用了哪些调试方法,以便希望我可以改进我的。

    最佳答案

    在我使用 NSIS 的过程中,有以下几点值得注意:

    我发现没有什么比使用自制工具解析 !verbose 3 级输出更强大的了;)

    我发现您不能依赖任何基于 NSIS 的调试方法。它可能会崩溃……并且您的安装程序也会随之崩溃。不漂亮,嗯? :(

    我发现按需启用/禁用调试也是针对 idsses 的非常强大的武器,因为它允许区分不稳定和失败的 NSIS 构建(虽然使用 CI 术语更容易...... :))。

    我发现没有实时自动化 NSIS 测试的详细输出就像用自行车引擎驾驶凯迪拉克 :)

    希望它对那些不小心访问这个问题的人有所帮助:)

    编辑:从 3rd 方工具开始总是一个好主意。例如,无需为 GUI 烦恼,因为使用以下工具总是更容易:

  • EclipseNSIS(虽然我不喜欢它:P)
  • NSIS 对话框设计器 ( http://nsis.sourceforge.net/NSIS_Dialog_Designer )
  • 自制静态代码分析器。我为自己做了一个:P


  • 编辑 #2:我发现非常有效的调试方法是使用直接文档自动化。目前我使用以下组件:
  • http://nsis.sourceforge.net/NsScreenshot_plug-in (请参阅重要说明以确保没有意外的惊喜...)
  • http://www.dokuwiki.org/cli#dwpagephp (有关更多信息,请参阅此链接:http://www.microsoft.com/web/platform/phponwindows.aspx)

  • 结果是我在 nsDialog:Show之后得到了截图加上我在 wiki 中得到了更新的图像 :) .. 剩下的就是从 svnlook 获取信息:)

    编辑 #3:并且通过使用 NSIS v2.44 header 为 Delphi 和 Lazarus IDE 0.9.30.2 构建一个 svn log --xml 导出 DLL 也解决了 svnlook 的需要:) 感谢 Lazarus!

    呜呼! :)

    编辑 #4:在这里点击这个小讨论: http://forums.winamp.com/showthread.php?t=325521

    关于debugging - 调试 NSIS 安装程序的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1630841/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com