首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试NSIS安装程序的方法?

调试NSIS安装程序的方法?
EN

Stack Overflow用户
提问于 2009-10-27 13:36:17
回答 4查看 14.8K关注 0票数 14

虽然NSIS允许您构建相当强大的安装程序,但NSIS使用的“如此低级的语言使我想起了程序集”很容易出错,因此,当您希望安装程序做一些比编写文件更复杂的事情时,调试是必须的。

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

  • 在我在任何地方都包含的.nsh文件中,我根据DEBUG定义的值定义了一个宏
    • 如果DEBUG打开,则宏将触发带有调试消息的MessageBox。
    • 如果DEBUG关闭,则宏将什么也不做

    ​ 这种方法对我很有帮助,但也有一些缺点:

  • 它要求我填充我认为是调用NSIS_DEBUG_MSG失败的代码,并多次重新构建安装程序,直到我获得足够的信息来解决问题
  • 如果我的问题是安装程序本身失败了(如果安装程序死了),这对我没有好处。

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

EN

回答 4

Stack Overflow用户

发布于 2012-04-10 10:54:28

在我使用NSIS期间,有一些值得注意的事情:

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

我发现你不能依赖任何基于NSIS的调试方法。可能会坠毁..。你的安装程序也会随之崩溃。不漂亮,嗯?

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

我发现,冗长的输出w/o实时自动化NSIS测试就像驾驶凯迪拉克的自行车引擎:)

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

编辑:从第三方工具开始一直是个好主意。例如,不需要纠缠于GUI,因为使用以下工具总是更容易:

  • EclipseNSIS (我不喜欢它:P )
  • NSIS对话框设计器(设计师)
  • 自制的静态代码分析器。我为自己做了一个:

编辑#2:我发现使用直接文档自动化是非常有效的调试方法。目前,我使用以下组件:

  • 插入式 (请参阅重要的注释,以便没有意外的惊喜.)
  • http://www.dokuwiki.org/cli#dwpagephp (有关更多信息,请参见此链接:http://www.microsoft.com/web/platform/phponwindows.aspx )

结果是,我在nsDialog:Show之后得到了截图,并且在wiki中得到了更新的图片:)。只剩下从svnlook :)获取信息的东西

编辑#3:和svnlook的需要也是通过构建svn日志来实现的--使用Delphi 0.9.30.2 :)的NSISv2.44头向Lazarus导出DLL!

喔!:)

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

票数 6
EN

Stack Overflow用户

发布于 2009-11-10 14:03:56

节省我很多时间的是使用NSIS创建的日志。编译脚本时的日志和安装日志。它们允许我检查我定义的宏是否在使用中,并且安装是否实际运行了它们应该运行的磁盘。

它可能看起来太少了,但实际上这是我需要的所有东西,使我的50+ nsh文件安装软件运行,同时分而治之原则。

票数 5
EN

Stack Overflow用户

发布于 2009-11-20 18:50:43

您可以从具有高级日志记录的官方站点下载NSIS的特殊构建之一。这将为您提供非常详细的日志信息,使调试更容易。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1630841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档