designer,如何调试Data Designer Extensibility (DDEX)

最近在开发DDEX发现没有办法调试.问了好多个地方都没有答案....
终于让我找到调试的方法了.现在发出来和大家分享一下...
首先:在调试里选择启动外部程序 例:C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe
然后:在生事件里的后期生成事件里加上:"$(ProjectDir)\Install.cmd" /regroot SOFTWARE\Microsoft\VisualStudio\9.0 /codebase "$(TargetDir)$(TargetFileName)"
这个Cmd会用动两个文件一个就是注册DDEX的注册表文件一个是VBS文件
Cmd文件内容为:
@ECHO OFF SETLOCAL ECHO Oscar.DDEX Installation SET MYDIR=%~dp0 SET RANU=No SET REGROOT=SOFTWARE\Microsoft\VisualStudio\10.0Exp SET CODEBASE= :ParseCmdLine IF "%1"=="" GOTO Main IF "%1"=="/ranu" SET RANU=Yes& GOTO NextCmdLine IF "%1"=="/regroot" IF NOT "%~2"=="" SET REGROOT=%~2& SHIFT & GOTO NextCmdLine IF "%1"=="/codebase" IF NOT "%~2"=="" SET CODEBASE=%~f2& SHIFT & GOTO NextCmdLine IF "%1"=="/?" GOTO Help GOTO Help :NextCmdLine SHIFT GOTO ParseCmdLine :Main IF "%CODEBASE%"=="" GOTO Help ECHO Register as Normal User: %RANU% ECHO VS Registry Root: %REGROOT% ECHO Code base: %CODEBASE% IF NOT EXIST "%CODEBASE%" ( ECHO The code base was not found. GOTO End ) IF NOT EXIST "%SystemRoot%\SysWOW64" ( CScript "%MYDIR%\Install.vbs" //NoLogo %RANU% "%REGROOT%" "%CODEBASE%" "regedit" ) ELSE ( CScript "%MYDIR%\Install.vbs" //NoLogo %RANU% "%REGROOT%" "%CODEBASE%" "%SystemRoot%\SysWOW64\regedit" ) ECHO Done! GOTO End :Help ECHO Usage: install [/ranu] [/regroot ^] /codebase ^ [/?] :End ENDLOCAL
VBS文件内容为:

Main Sub Main() Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") Dim fso Set fso = WScript.CreateObject("Scripting.FileSystemObject") Dim myDir myDir = fso.GetParentFolderName(WScript.ScriptFullName) Dim ranu ranu = WScript.Arguments(0) Dim regRoot regRoot = WScript.Arguments(1) If Right(regRoot, 1) = "\" Then regRoot = Left(regRoot, Len(regRoot) - 1) End If If (ranu = "No") Then regRoot = "HKEY_LOCAL_MACHINE\" & regRoot Else regRoot = "HKEY_CURRENT_USER\" & regRoot & "\Configuration" End If Dim codebase codebase = WScript.Arguments(2) Dim regFile Dim genRegFile Dim regFileContents Set regFile = fso.OpenTextFile(myDir & "\OscarDDEXProvider.reg", 1) Set genRegFile = fso.CreateTextFile(myDir & "\ExtendedProvider.gen.reg", true) regFileContents = regFile.ReadAll() regFileContents = Replace(regFileContents, "%REGROOT%", regRoot) regFileContents = Replace(regFileContents, "%PROVIDERGUID%", "{E19DB6D1-4DB4-4598-B4FE-26BE84F7D243}") regFileContents = Replace(regFileContents, "%CODEBASE%", Replace(codebase, "\", "\\")) genRegFile.Write(regFileContents) genRegFile.Close() regFile.Close() Dim oExec Set oExec = WshShell.Exec(WScript.Arguments(3) & " /s """ & myDir & "\ExtendedProvider.gen.reg""") Do While oExec.Status = 0 WScript.Sleep(100) Loop fso.DeleteFile(myDir & "\ExtendedProvider.gen.reg") End Sub
Tags:  designer

延伸阅读

最新评论

发表评论