如何调试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 ^ < regroot^ > / codebase ^ < 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

转载于:https://www.cnblogs.com/guozk/archive/2011/07/13/2105454.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值