【问题标题】:Visual Studio External Tool Arguments for multiple vbs files to debug HTA application用于调试 HTA 应用程序的多个 vbs 文件的 Visual Studio 外部工具参数
【发布时间】:2017-02-21 04:59:06
【问题描述】:

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

我在网上搜索过,但找不到确切的 QA。这是关于How to run multiple batch files with single External Tool in Visual StudioHow to debug IE9 HTA?没有找到灵丹妙药

这是我卡住的地方,我调试 ma​​in.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 中调用激活函数时,它说找不到。或者更具体地说, main 没有定义。

【问题讨论】:

  • 在更新 1 中,您是否使用 wsf 文件运行调试器? IE。 cscript.exe //nologo "test.wsf".
  • 在更新 1 中,我打开了 vbsDebugging.wsf 文件并单击工具菜单 > cscript 进行调试,然后 VS 根据屏幕截图打开“VBScript - 脚本块”
  • 您是否尝试过仅在调试器外部的命令提示符下运行cscript.exe //nologo "test.wsf" 是否有效或仍然出错?
  • 我会确保您按使用顺序定义“包含”,例如,在您在 utils.vbs 之前定义 main.vbs 但您尝试调用 cutil 类在main.vbs。重新排序utils.vbs,使其在脚本列表中的main.vbs 之前定义,然后重试。我不认为调试器是问题所在,我敢打赌脚本在调试器外部调用时仍然会失败。
  • @Lankymart 您能否将您的评论作为答案定义“包含”,以便它们在 WSF 文件中使用 - 这成功了,谢谢。

标签: c# visual-studio debugging vbscript hta


【解决方案1】:

作为mentioned in the comments,可能的原因是WSF 文件中脚本的顺序。尝试安排它们,使 utils.vbs 出现在 main.vbs 之前,因为它似乎依赖于 utils.vbs 中的 cutil 类。

<job id="IncludeExample">
   <script language="VBScript" src="utils.vbs"/>
   <script language="VBScript" src="main.vbs"/>
</job>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 2011-12-06
    • 2012-05-15
    • 2019-05-25
    • 1970-01-01
    相关资源
    最近更新 更多