2017-02-21 39 views
1

Мне нужно отладить несколько файлов VBS, которые составляют приложение HTA.Внешние инструменты Visual Studio Аргументы для нескольких файлов vbs для отладки приложений HTA

Я искал в Интернете и не смогли найти точные QA.This один о How to run multiple batch files with single External Tool in Visual Studio и How to debug IE9 HTA?который серебряная пуля не была найдена.

Это где я застрял, я отлаживать main.vbs и ссылается на class cutils, который находится в файле utils.vbs. И когда я ступаю на эту линию, чтобы создать экземпляр cutils я получаю сообщение об ошибке:

Microsoft VBScript runtime error: Variable is undefined: 'cutil'

enter image description here

Так что я попробовал несколько External Tool Arguments как разделенные запятой файлы:

//nologo //X "$(ItemPath), $(ItemDir)utils.vbs" 

Но это не Работа. Возможно ли, чтобы указать несколько файлов?

В противном случае, кроме копирования всех классов в один файл, как я могу отлаживать файлы VBS в Visual Studio? Я пытался прикрепить VS отладчик Mshta.exe однако он не попадает в режим отладки, даже со стандартным debugger ключевое слово не останавливает контроль код:

function clickButton() 
    debugger 

Так я после того, как способ отладки множественным Файлы VBA с cscript.exe или даже лучше присоединяться к процессу mshta для перехода через код с прикрепленным отладчиком. Любая идея очень ценится?


Update 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> 

Это начинается на главной .vbs однако все еще не удается найти класс cutils в utils.vbs:

enter image description here


Update 2:

Так я переименовал расширение .hta файла .html, что позволило мне открыть инструменты разработчика в IE. По какой-то причине нажатие F12 в приложении HTA не позволяет использовать Dev Tools.

Когда я это делаю, отладка болезненна, отладчик может показать, чтобы найти utils.vbs, однако, когда я вызываю функцию активации в main.vbs, он говорит, что не может быть найден. Или более конкретно главное не определено.

enter image description here

+0

В обновлении 1 вы используете отладчик, используя файл 'wsf'? То есть 'cscript.exe // nologo" test.wsf "'. – Lankymart

+0

В обновлении 1 я открыл файл vbsDebugging.wsf и щелкнул меню «Сервис»> cscript для его отладки, а затем открыл «блок сценария VBScript» в соответствии с скриншотом –

+1

Вы пробовали запустить «cscript.exe // nologo», test.wsf "из командной строки за пределами отладчика работает ли она или все еще ошибка? – Lankymart

ответ

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>