Visual Studio外部工具用于调试HTA应用程序的多个vbs文件的参数

时间:2017-02-21 04:59:07

标签: c# visual-studio debugging vbscript hta

我需要调试构成HTA应用程序的几个VBS文件。

我在网上搜索过,找不到确切的质量保证。这个有关How to run multiple batch files with single External Tool in Visual StudioHow to debug IE9 HTA? 未找到银弹的。< / p>

这是我遇到的问题,我调试了 main.vbs ,它引用了文件 utils.vbs 中的class cutils。当我跨过这一行来实例化cutils时,我收到一个错误:

  

Microsoft VBScript运行时错误:变量未定义:'cutil'

enter image description here

所以我尝试了一些逗号分隔文件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类:

enter image description here

更新2:

所以我将.hta文件扩展名重命名为.html,这让我可以打开IE的开发者工具。出于某种原因,在HTA应用程序中按F12不允许您使用开发工具。

当我这样做时,调试很痛苦,调试器可以似乎来查找utils.vbs但是,当我在main.vbs中调用activate函数时,它说它无法找到。或者更具体地说,主要没有定义。

enter image description here

1 个答案:

答案 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>