كيفية القيام بما يلي: إنشاء و الإرفاق إلى إلى مثيل آخر من برنامج Visual Studio
في بعض حالات هو مفيدة لإنشاء مثيل جديد من Visual Studioأو يرفق إلى مثيل معين من بشكل مبرمج Visual Studioالتي هو مسبقاً تشغيل. إذا مثيلين من Visual Studioقيد التشغيل تشغيل النظام ويتضمن كل من نفس الحل فتح — تشغيل سبيل المثال، يجري مثيل واحد لبناء حل والآخر هو إجراء بنية يصحح — يمكنك برمجة الوظيفة الإضافية إلى التمييز بينهما.
يمكنك، على سبيل المثال:
قم بتشغيل مثيل Visual Studioيعمل تشغيل مساراً إلى ملف أو soluti تشغيل.
قم بإرفاق نسخة عن Visual Studioاستناداً إلى مسار إلى ملف أو الحل.
قم بتحميل الملف أو الحل في مثيل موجود من Visual Studio.
إنشاء مثيل جديد من Visual Studioالموقع المثيل إيقاف متى:
إنشاء مثيل جديد من Visual Studioالموقع يظل تم تحميله المثيل حتى وقت:
يمكن أن يتم تحويل الكائنات التي تم إرجاعها إلى الكائنات الخاصة بها، مثل DTE2و Solution2.
ملاحظة
قد تختلف مربعات الحوار وأوامر القائمة التى تشاهدها الان عن تلك الموصوفة في التعليمات اعتماداً على الإعدادات النشطة أو الإصدار الخاص بك. تم تطوير هذه الإجراءات من خلال "إعدادات تطوير عام" النشط. To change your settings, choose Import and Export Settings on the Tools menu. لمزيد من المعلومات، راجع العمل مع إعدادات.
مثال
لإنشاء مثيل جديد من Visual Studio، استخدم أي CreateObject Function (Visual Basic)أو System.Activator.CreateInstance. عند استخدام CreateObjectدالة في Visual Basic، يمكنك تمرير قيم "VisualStudio.DTE.10.0."الأمثلة أدناه توضيح هذه الأساليب.
' CreateObject method 1 - VisualStudio.DTE.10.0.
Public Sub Exec(ByVal commandName As String, ByVal executeOption _
As vsCommandExecOption, ByRef varIn As Object, ByRef varOut As _
Object, ByRef handled As Boolean) Implements IDTCommandTarget.Exec
handled = False
If executeOption = _
vsCommandExecOption.vsCommandExecOptionDoDefault Then
If commandName = "VBTestAddin.Connect.VBTestAddin" Then
CreateNewInstance1(_applicationObject)
handled = True
Exit Sub
End If
End If
End Sub
Private Sub CreateNewInstance1(ByVal dte As DTE2)
Dim inst As Object
Dim dte80Obj As EnvDTE80.DTE2
inst = Microsoft.VisualBasic.Interaction. _
CreateObject("VisualStudio.DTE.10.0", "")
dte80Obj = CType(inst, EnvDTE80.DTE2)
MsgBox(dte80Obj.DisplayMode.ToString)
End Sub
' GetTypeFromProgID and CreateInstance method.
Public Sub Exec(ByVal commandName As String, ByVal executeOption _
As vsCommandExecOption, ByRef varIn As Object, ByRef varOut As _
Object, ByRef handled As Boolean) Implements IDTCommandTarget.Exec
handled = False
If executeOption = _
vsCommandExecOption.vsCommandExecOptionDoDefault Then
If commandName = "VBTestAddin.Connect.VBTestAddin" Then
CreateNewInstance2(_applicationObject)
handled = True
Exit Sub
End If
End If
End Sub
Private Sub CreateNewInstance2(ByVal dte As DTE2)
Dim Type As System.Type
Dim inst As Object
Dim dte80Obj As EnvDTE80.DTE2
Type = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0")
inst = System.Activator.CreateInstance(Type, True)
dte80Obj = CType(inst, EnvDTE80.DTE2)
MsgBox(dte80Obj.DisplayMode.ToString)
End Sub
public void OnConnection(object application, ext_ConnectMode
connectMode, object addInInst, ref Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
CreateNewInstance2(_applicationObject);
}
private void CreateNewInstance2(DTE2 dte)
{
System.Type Type;
object inst;
EnvDTE80.DTE2 dte80Obj;
Type = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0");
inst = System.Activator.CreateInstance(Type, true);
dte80Obj = (EnvDTE80.DTE2)inst;
System.Windows.Forms.MessageBox.Show
(dte80Obj.DisplayMode.ToString());
}
// Create a new instance of Visual Studio by using
// GetTypeFromProgID and CreateInstance.
private void CreateNewInstance1()
{
System.Type type = System.Type.GetTypeFromProgID
("VisualStudio.DTE.10.0");
Object obj = System.Activator.CreateInstance(type, true);
EnvDTE80.DTE2 dte8Obj = (EnvDTE80.DTE2)obj;
}
في Visual Basicسبيل المثال، كل من عبارات إنشاء مثيل جديد من Visual StudioIDE. العبارة الأولى مباشرة إنشاء مثيل جديد ببينما العبارة ثانية إنشاء مثيل جديد بواسطة إنشاء أحد الحلول جديدة.
إلى الحصول على مرجع إلى مثيل موجود من Visual StudioIDE، يمكنك استخدام GetObject Function (Visual Basic). يمكنك تنفيذ واحد الإجراءات التالية:
Private Sub GetInstance1 ()
Dim inst As Object
Dim dte80Obj As EnvDTE80.DTE2
inst = Microsoft.VisualBasic.Interaction.GetObject(, _
"VisualStudio.DTE.10.0")
dte80Obj = CType(inst, EnvDTE80.DTE2)
MsgBox(dte80Obj.DisplayMode.ToString)
End Sub
' -or-
Dim inst As Object
inst = Microsoft.VisualBasic.Interaction.GetObject(, _
"VisualStudio.Solution.8.0")
' ---------------------------
' -or-
' Change the path to your application.
Dim inst As Object
inst = Microsoft.VisualBasic.Interaction.GetObject _
("C:\Projects\WindowsApplication1\WindowsApplication1.sln")
' ---------------------------
' -or-
' Change the path to your application.
Dim inst As Object
inst = Microsoft.VisualBasic.Interaction.GetObject _
("C:\Projects\WindowsApplication1\WindowsApplication1.sln", _
"VisualStudio.Solution.8.0")