2008-09-18 8 views
5

Projemin, aynı çözüm dosyasında hem istemci hem de sunucu bileşenleri var. Genellikle hata ayıklayıcısını hata ayıklama işlemi sırasında başlatmaya ayarlıyorum, ancak genellikle sunucuyu hata ayıklayıcısının dışında başlattığım durumda, istemci tarafındaki tek şey üzerinde çalışırken istemciyi başlatabilir ve durdurabilirim. (Bu çok daha hızlı).Hata ayıklayıcısında belirli bir projeyi başlatmak için bir Visual Studio makrosu oluşturabilir miyim?

Tek tek projeleri başlatmak için Solution Explorer'da dolaşmaya uğraşmaktan kurtulmaya çalışıyorum ve tek tek projeler için hata ayıklayıcısını başlatan bir makroyu çağıran bir araç çubuğunu tıklatmayı tercih ediyorum ("F5" den ayrılırken) Her iki işlemciyi başlatmak için tek başına hata ayıklama yazın.

Kayıt yapmayı denedim, ancak bu gerçekten işe yaramadı.

Şimdiye kadar yapmak başardınız tüm çözüm explorer proje öğesini bulun etmektir. (Bu makro kaydedici bunu yapmaya çalıştım nasıl gevşek dayanır

Dim projItem As UIHierarchyItem 

projItem = DTE.ToolWindows.SolutionExplorer.GetItem("SolutionName\ProjectFolder\ProjectName").Select(vsUISelectionType.vsUISelectionTypeSelect) 

değilim UI nesne modelinde gezinmek doğru yaklaşım mı, yoksa Çözüm/Proje nesne modelini incelemeye devam etmem gerekiyorsa emin olun).

cevap

6

Tamam. benim için çalıştı aşağıdakiler C# eklenti itibaren

Sub DebugTheServer() 
    DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate() 
    DTE.ActiveWindow.Object.GetItem("Solution\ServerFolder\ServerProject").Select(vsUISelectionType.vsUISelectionTypeSelect) 
    DTE.Windows.Item(Constants.vsWindowKindOutput).Activate() 
    DTE.ExecuteCommand("ClassViewContextMenus.ClassViewProject.Debug.Startnewinstance") 
End Sub 
0

: Bu yüklenir (? tümü) bağlamları çözüm sağladı çoğu kullanıcı arayüzünden çalışır gibi görünen

Dte.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate(); 
Dte.ToolWindows.SolutionExplorer.GetItem("SolutionName\\SolutionFolderName\\ProjectName").Select(vsUISelectionType.vsUISelectionTypeSelect); 
+0

Hangi C# Add-in'i? – vendettamit

+0

Herhangi bir Visual Studio Eklentisinden çalışması gerektiğini söylüyorum. –

+0

EnvDtE amd EnvDte80 dışında bazı referansları kaçırıyor olabilirim. Evet? – vendettamit

İlgili konular