Khi viết plugin cho trung tâm truyền thông, plugin của bạn được lưu trữ trong ehexthost.exe
exe này được khởi chạy từ ehshell.exe
và bạn không có cách nào khởi chạy trực tiếp, thay vào đó bạn chuyển một thông số đặc biệt tới ehshell.exe
sẽ khởi chạy plugin trong một quy trình riêng biệt.Tự động đính kèm quy trình con vào Visual Studio trong khi gỡ lỗi
Khi chúng tôi đang gỡ lỗi media browser Tôi tìm thấy quá trình đính kèm vào loại quy trình thứ hai của clunky, tôi biết về Debugger.Attach và một số mục nhập special registry tôi có thể sử dụng.
Cả hai phương pháp này không khớp chính xác với hóa đơn của tôi. Những gì tôi muốn là nhấn F5 và có trường hợp hiện tại của studio hình ảnh gắn liền với quá trình con tự động. Điều này có thể được thực hiện?
Nếu có plugin cho VS cho phép tôi đạt được chức năng này, tôi sẽ hài lòng với nó.
EDIT
tôi đã kết thúc đi với macro sau:
Public Sub CompileRunAndAttachToEhExtHost()
DTE.Solution.SolutionBuild.Build(True)
DTE.Solution.SolutionBuild.Debug()
Dim trd As System.Threading.Thread = New System.Threading.Thread(AddressOf AttachToEhExtHost)
trd.Start()
End Sub
Public Sub AttachToEhExtHost()
Dim i As Integer = 0
Do Until i = 50
i = i + 1
Try
For Each proc As EnvDTE.Process In DTE.Debugger.LocalProcesses
If (proc.Name.IndexOf("ehexthost.exe") <> -1) Then
proc.Attach()
Exit Sub
End If
Next
Catch e As Exception
' dont care - stuff may be busy
End Try
Threading.Thread.Sleep(100)
Loop
End Sub
Ngoài ra, tôi vạch ra quá trình về cách get this going trên blog của tôi.
có cách khác với giao diện Debugger2 mới, http://www.codeplex.com/lazy/SourceControl/changeset/view/20095#307770 –
Có lợi thế nào khi sử dụng giao diện Debugger2 không? –
có, thay vì lặp trên DTE.Debugger.LocalProcesses bạn chỉ có thể nhận được quá trình proc = debugger2.GetProcesses (trans, "") .Item (processName) –