هل يمكنني إنشاء ماكرو Visual Studio لتشغيل مشروع معين في المصحح؟

يحتوي مشروعي على مكونات العميل والخادم في نفس ملف الحل. عادةً ما يكون لدي مصحح الأخطاء الذي تم تعيينه لبدء تشغيلها معًا عند تصحيح الأخطاء ، ولكن غالبًا ما يحدث ذلك عندما أقوم بتشغيل الخادم خارج مصحح الأخطاء حتى أتمكن من بدء العميل وإيقافه عند الحاجة عند العمل على أشياء العميل فقط. (هذا أسرع بكثير).

أحاول إنقاذ نفسي من المتاعب حول بدس في مستكشف الحلول لبدء مشاريع فردية ويفضل فقط أن يلصق زر على شريط الأدوات الذي يستدعي الماكرو الذي يبدأ المصحح للمشاريع الفردية (في حين ترك نوع التصحيح "F5" وحده بدء كل processess).

حاولت التسجيل ، لكن ذلك لم يؤد إلى أي شيء مفيد.

حتى الآن ، كل ما تمكنت من القيام به هو تحديد موقع عنصر المشروع في مستكشف الحلول:

 Dim projItem As UIHierarchyItem

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

(هذا يعتمد بشكل كبير على كيفية محاولة مسجل الماكرو القيام به. لست متأكداً إذا كان التنقل في طراز كائن واجهة المستخدم هو الأسلوب الصحيح ، أو إذا كان يجب أن أقوم بالبحث في نموذج كائن Solution/Project بدلاً من ذلك).

0
وأضاف
الآراء: 1

2 إجابة

حسنا. يبدو أن هذا يعمل من معظم سياقات واجهة المستخدم (الكل؟) بشرط أن يتم تحميل الحل:

 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
وأضاف

من وظيفة إضافية لـ C# ، كان يعمل التالي بالنسبة لي:

Dte.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate();
Dte.ToolWindows.SolutionExplorer.GetItem("SolutionName\\SolutionFolderName\\ProjectName").Select(vsUISelectionType.vsUISelectionTypeSelect);
0
وأضاف
أنا أقول أنه يجب أن تعمل من أي الوظيفة الإضافية Visual Studio.
وأضاف المؤلف Erwin Mayer, مصدر
لا ، الأمر أكثر تعقيدًا من ذلك للحصول على كائن DTE إذا لم يكن مشروعك عبارة عن VS Add In. لست متأكدًا من سؤالك ولكن عليك أن تفتح سؤالًا جديدًا بدلاً من التعليق على هذه الإجابة.
وأضاف المؤلف Erwin Mayer, مصدر
أرى أنك وجدت بالفعل بلدي لب هنا: gist.github.com/mayerwin/82301024371e9c555d24 في هذا الشأن ينبغي تساعدك على تحقيق ما تحتاجه.
وأضاف المؤلف Erwin Mayer, مصدر
التي C# الوظيفة الإضافية؟
وأضاف المؤلف vendettamit, مصدر
قد يكون i 'مفقود بعض المراجع بغض النظر عن EnvDtE amd EnvDte80. نعم فعلا؟
وأضاف المؤلف vendettamit, مصدر
نعم .. ولكن هذا لم يكن يعمل مع .Net 4.5 بسبب عدم وجود مساحات الأسماء والفصول. لقد وجدت حلًا آخر على SO هنا لـ 4.5.
وأضاف المؤلف vendettamit, مصدر