我需要调试构成HTA应用程序的几个VBS文件。
我在网上搜索过,找不到确切的质量保证。这个有关How to run multiple batch files with single External Tool in Visual Studio和How to debug IE9 HTA? 未找到银弹的。< / p>
这是我遇到的问题,我调试了 main.vbs ,它引用了文件 utils.vbs 中的class cutils
。当我跨过这一行来实例化cutils时,我收到一个错误:
Microsoft VBScript运行时错误:变量未定义:'cutil'
所以我尝试了一些逗号分隔文件External Tool Arguments:
//nologo //X "$(ItemPath), $(ItemDir)utils.vbs"
但这不起作用。这可能,指定多个文件吗?
除了将所有类复制到一个文件中之外,如何在Visual Studio中调试VBS文件?我试图将VS调试器附加到mshta.exe但是它没有进入调试模式,即使标准debugger
关键字没有停止代码控制:
function clickButton()
debugger
所以我正在尝试使用cscript.exe调试多个VBA文件,或者更好地附加到mshta进程以逐步执行附带调试器的代码。有什么想法非常感激吗?
更新1:
在回答https://stackoverflow.com/a/316491/495455后,我尝试使用所有引用创建一个wsf文件,并使用cscript.exe进行调试:
<job id="IncludeExample">
<script language="VBScript" src="main.vbs"/>
<script language="VBScript" src="utils.vbs"/>
</job>
这是从main.vbs开始的,但它仍然无法在utils.vbs中找到cutils类:
更新2:
所以我将.hta文件扩展名重命名为.html,这让我可以打开IE的开发者工具。出于某种原因,在HTA应用程序中按F12不允许您使用开发工具。
当我这样做时,调试很痛苦,调试器可以似乎来查找utils.vbs但是,当我在main.vbs中调用activate函数时,它说它无法找到。或者更具体地说,主要没有定义。
答案 0 :(得分:2)
作为mentioned in the comments,可能的原因是WSF文件中脚本的顺序。请尝试排列utils.vbs
main.vbs
,因为它似乎依赖于cutil
中的utils.vbs
类。
<job id="IncludeExample">
<script language="VBScript" src="utils.vbs"/>
<script language="VBScript" src="main.vbs"/>
</job>