虽然NSIS允许您构建相当强大的安装程序,但NSIS使用的“如此低级的语言使我想起了程序集”很容易出错,因此,当您希望安装程序做一些比编写文件更复杂的事情时,调试是必须的。
到目前为止,我使用了以下类似Printf的调试技术:
.nsh文件中,我根据DEBUG定义的值定义了一个宏DEBUG打开,则宏将触发带有调试消息的MessageBox。DEBUG关闭,则宏将什么也不做 这种方法对我很有帮助,但也有一些缺点:
NSIS_DEBUG_MSG失败的代码,并多次重新构建安装程序,直到我获得足够的信息来解决问题因此,我想知道的是,您对这些安装程序使用了哪些调试方法,希望我可以改进我的调试方法。
发布于 2012-04-10 10:54:28
在我使用NSIS期间,有一些值得注意的事情:
我发现没有什么比解析更强大了!用自制的工具进行详细的3级输出;)
我发现你不能依赖任何基于NSIS的调试方法。可能会坠毁..。你的安装程序也会随之崩溃。不漂亮,嗯?
我发现启用/禁用按需调试也是对付idsses的非常强大的武器,因为它允许区分不稳定的NSIS构建和失败的NSIS构建(虽然使用CI术语比较容易.) )。
我发现,冗长的输出w/o实时自动化NSIS测试就像驾驶凯迪拉克的自行车引擎:)
希望对不小心访问这个问题的人有所帮助:)
编辑:从第三方工具开始一直是个好主意。例如,不需要纠缠于GUI,因为使用以下工具总是更容易:
编辑#2:我发现使用直接文档自动化是非常有效的调试方法。目前,我使用以下组件:
结果是,我在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
发布于 2009-11-10 14:03:56
节省我很多时间的是使用NSIS创建的日志。编译脚本时的日志和安装日志。它们允许我检查我定义的宏是否在使用中,并且安装是否实际运行了它们应该运行的磁盘。
它可能看起来太少了,但实际上这是我需要的所有东西,使我的50+ nsh文件安装软件运行,同时分而治之原则。
发布于 2009-11-20 18:50:43
您可以从具有高级日志记录的官方站点下载NSIS的特殊构建之一。这将为您提供非常详细的日志信息,使调试更容易。
https://stackoverflow.com/questions/1630841
复制相似问题