Nasıl yapılır: oluşturma ve Visual Studio başka bir örneği ekleme
Bunu yararlı program aracılığıyla bazı durumlarda yeni bir örneğini oluşturmak Visual Studio belirli bir örneğe eklemek veya Visual Studio , zaten çalışıyor. İki örneğini Visual Studio bir sistemde çalışan ve her ikisi de açık aynı çözümü vardır — Örneğin, bir örnek çözüm oluşturma işlemi uyguluyor ve başka bir hata ayýklama yapýsýnýn Confi gerçekleştirmek olduğunu — bunlar arasında ayrım yapmak için eklenti programı.
Örneğin yapabilirsiniz:
Bir örneğini başlatmak Visual Studio bir dosya ya da çözüm yoluna göre.
Örneğine iliştirmek Visual Studio bir dosya ya da çözüm yoluna göre.
Bir dosya ya da çözümü varolan bir örneğine yük Visual Studio.
Yeni bir örneğini oluşturmak Visual Studio burada örnek kapatır ne zaman:
Yeni bir örneğini oluşturmak Visual Studio burada örnek yüklü olarak kalır bile:
Döndürülen nesnelerin kendi nesnelerini gibi artığını DTE2 ve Solution2.
Not
Gördüğünüz iletişim kutuları ve menü komutları, etkin ayarlarınıza ve ürün sürümüne bağlı olarak Yardım menüsünde açıklanana göre farklılık gösterebilir.Bu yordamlar, genel geliştirme ayarları ile etkin geliştirilmiştir.Ayarlarınızı değiştirmek için Al ve Verayarları üzerinde araçları menü.Daha fazla bilgi için bkz. Visual Studio ayarları.
Örnek
Yeni bir örneğini oluşturmak için Visual Studio, ya da kullanma CreateObject Function veya System.Activator.CreateInstance. Kullanırken CreateObject , işlev Visual Basic, değerlerini geçirebilirsiniz "VisualStudio.DTE.10.0." bu yöntemler aşağıdaki örneklerde gösterilmektedir.
' 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;
}
De Visual Basic örnek, her iki bildiri oluştur Yeni bir örneğini Visual Studio IDE. İlk ifade, doğrudan ikinci ifade yeni bir örneğini oluştururken, yeni bir çözüm oluşturarak yeni bir örneğini oluşturur.
Varolan örneği başvurusu elde etmek için Visual Studio IDE kullanabilirsiniz GetObject Function. Aşağıdakilerden birini yapabilirsiniz:
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")