Nasıl yapılır: Visual Basic projeleri Imports özelliğini değiştirmek
Çoğu VSProject2 yöntemlerini ve özelliklerini uygulamak için Visual C# ve Visual Basic projeleri. Daha fazla bilgi için bkz. Nasıl yapılır: Visual Basic ve C# projeleri VSProject2 nesnesini kullanarak işleme. Imports Özelliðinin VSProject2 nesne için belirli Visual Basic projeleri. Erişim sağlayan Imports nesne ekleme ve numaralandırma yöntemlerini Imports koleksiyonu.
Program aracılığıyla denetlemek nasıl aşağıdaki adımları açıklayan Imports özelliğinde bir Visual Basic kullanarak proje bir Visual Studio eklentisi.
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 Araçlar menüsünden İçeri ve Dışarı Aktarma Ayarları'nı seçin.Daha fazla bilgi için bkz. Visual Studio ayarları.
Visual Basic projeleri denetlemek için VSProject2 nesnesini kullanmak için
Oluşturma bir Visual Studio kullanarak eklenti projesinin Visual C#.
Üzerinde Proje menüsünde,'ı Add Reference,'ı .net sekmesini VSLangProj, VSLangProj2 ve VSLangProj80 seçin ve sonra Tamam.
Bilgisayarınızda bir klasör oluşturun:
< yükleme kök >\UserFiles\MyProjects\MyTestProject
Bu örnekte, <Yükleme kök> "c:" sürücüsüdür.
Aşağıdaki using ifadelerini Connect.cs dosyasýný dön.
using VSLangProj; using VSLangProj2; using VSLangProj80; using VSLangProj90;
VSLangProj100 kullanma;Aşağıdaki yöntem çağrısı OnConnection yöntemine ekleyin.
public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) { _applicationObject = (DTE2)application; _addInInstance = (AddIn)addInInst; VBVSProj2Manip(_applicationObject); }
CSVSProj2Manip yöntem bildiriminde OnConnection yönteminin hemen altına ekleyin.
public void CSVSProj2Manip(DTE2 dte) { }
Aşağıdaki tanımlamalar yönteminin en üstüne ekleyin.
Solution2 soln = (Solution2)_applicationObject.Solution; String vbTemplatePath; String vbPrjPath; Project proj; VSProject2 vsproj; Imports impCollection;
Use AddFromTemplate oluşturmak için bir Visual C# proje.
- Şablonları alma sözdizimi EnvDTE80.Solution2.GetProjectTemplate("WindowsApplication.zip", "VisualBasic"), burada adı "WindowsApplication.zip" yer alan WindowsApplication.zip dosyasından alınan < yükleme kök >\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\VisualBasic\Windows\1033 klasörü. Tüm Visual Studio proje türleri de bu dosyaları bulunabilir < yükleme kök >\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\Dil klasörü. "VisualBasic"Bu proje olduğunu belirtir bir Visual Basic proje.
// Make sure you create the folders that // make up the file path // on your computer. You can replace // this with your own file path. vbPrjPath = "C:\\UserFiles\\MyProjects\\MyTestProject"; // Get the project template path for a C# windows // application. vbTemplatePath = soln.GetProjectTemplate ("WindowsApplication.zip", "VisualBasic"); // Create a new Windows application by using the // template obtained above. soln.AddFromTemplate(vbTemplatePath, vbPrjPath, "Test2VBProj", false);
Kullanımını göstermek için aşağıdaki kodu ekleyip Imports üzerinden alındıktan sonra Imports özelliği.
proj = soln.Projects.Item(1); // Get a reference to the VSProject2 object. vsproj = (VSProject2)proj.Object; // Add a reference to System.Security.dll. MessageBox.Show("Adding a reference to System.Security.dll"); // Remove the <version number> in the following path // and replace it with one of the version // number folders that appear // in <installation root>\WINDOWS\Microsoft.NET\Framework // folder vsproj.References.Add ("C:\\WINDOWS\\Microsoft.NET\\Framework\\ <version number>\\System.Security.dll"); impCollection = vsproj.Imports; MessageBox.Show("The number of imports in this project is: " + impCollection.Count.ToString() + "\n"); MessageBox.Show ("Adding System.Security to the Imports collection."); impCollection.Add("System.Security"); MessageBox.Show("The number of imports in this project is now: " + impCollection.Count.ToString() + "\n"); String temp = null; for (int i = 1; i <= impCollection.Count; i++) { temp = temp + impCollection.Item(i).ToString() + "\n"; } MessageBox.Show("The Imports in this project are:" + "\n" + temp);
VBVSProj2Manip yöntemi kullanan VSProject2 itiraz:
System.Security.dll başvurusu kullanarak eklemek References.
Bir tanıtıcı elde etmek Imports kullanarak Imports özelliği.
Yöntemleri Imports gerçekleştirmek için kullanılır:
System.Security ekleme Imports kullanarak toplama Add.
Kullanarak Imports koleksiyondaki öğe sayısını görüntülemek Count özelliği.
Görünen öğeleri adı Imports kullanarak toplama Item yöntemi.
Örnek bölüm tüm yöntemi için bir try-catch bloğu da dahil olmak üzere tam kodu listeler.
Eklenti oluşturmak için tıklatın Build Solution , Build menü.
Açık bir Visual Basic , proje Visual Studio tümleşik geliştirme ortamı (IDE).
Üzerinde araçları menüsünde tıklatın Add-in Manager, eklentiniz alanından seçin ve Add-In Manager iletişim kutusu. Tıklatın Tamam eklenti çalıştırmak için.
Örnek
Aşağıdaki örnek bir temel olan Visual Studio nasıl kullanılacağını gösteren eklenti Imports özelliğini kullanarak Visual Studio Otomasyon.
using System;
using System;
using Extensibility;
using EnvDTE;
using EnvDTE80;
using System.Windows.Forms;
using VSLangProj;
using VSLangProj2;
using VSLangProj80;
using VSLangProj90;
using VSLangProj100;
public void OnConnection(object application,
ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
VBVSProj2Manip(_applicationObject);
}
public void VBVSProj2Manip(DTE2 dte)
{
try
{
Solution2 soln = (Solution2)_applicationObject.Solution;
String vbTemplatePath;
String vbPrjPath;
Project proj;
VSProject2 vsproj;
Imports impCollection;
// Make sure you create the folders that make up the file path
// on your computer. You can replace this with
// your own file path.
vbPrjPath = "C:\\UserFiles\\MyProjects\\MyTestProject";
// Get the project template path for a Visual Basic windows
// application.
vbTemplatePath = soln.GetProjectTemplate
("WindowsApplication.zip", "VisualBasic");
// Create a new Windows application by using the
// template obtained above.
soln.AddFromTemplate(vbTemplatePath, vbPrjPath,
"Test2VBProj", false);
proj = soln.Projects.Item(1);
// Cast to the VSProject2 object.
vsproj = (VSProject2)proj.Object;
// Add a reference to System.Security.dll.
MessageBox.Show("Adding a reference to System.Security.dll");
// Remove the <version number> in the following path
// and replace it with one of the version
// number folders that appear
// in <installation root>\WINDOWS\Microsoft.NET\Framework
// folder
vsproj.References.Add
("C:\\WINDOWS\\Microsoft.NET\\Framework\\
<version number>\\System.Security.dll");
vsproj.Refresh();
impCollection = vsproj.Imports;
MessageBox.Show("The number of imports in this project is: "
+ impCollection.Count.ToString() + "\n");
MessageBox.Show("Adding System.Security to the
Imports collection.");
impCollection.Add("System.Security");
MessageBox.Show("The number of imports in this project is now:
" + impCollection.Count.ToString() + "\n");
String temp = null;
for (int i = 1; i <= impCollection.Count; i++)
{
temp = temp + impCollection.Item(i).ToString() + "\n";
}
MessageBox.Show("The Imports in this project are:" + "\n"
+ temp);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Imports System
Imports Microsoft.VisualStudio.CommandBars
Imports Extensibility
Imports EnvDTE
Imports EnvDTE80
Imports VSLangProj
Imports VSLangProj2
Imports VSLangProj80
Imports VSLangProj90
Imports VSLangProj100
Public Sub OnConnection(ByVal application As Object, _
ByVal connectMode As ext_ConnectMode, ByVal addInInst As Object, _
ByRef custom As Array) Implements IDTExtensibility2.OnConnection
_applicationObject = CType(application, DTE2)
_addInInstance = CType(addInInst, AddIn)
VBVSProj2Manip(_applicationObject)
End Sub
Sub VBVSProj2Manip(ByVal dte As DTE2)
Try
Dim soln As Solution2 = CType(_applicationObject.Solution, _
Solution2)
Dim vbTemplatePath As String
Dim vbPrjPath As String
Dim proj As Project
Dim vsproj As VSProject2
Dim impCollection As [Imports]
' Create this or your own file path on your computer.
' The file path needs to exist before you run this add-in.
vbPrjPath = "C:\UserFiles\MyProjects\MyTestProject"
' Get the project template path for a Visual Basic
' Windows application.
vbTemplatePath = soln.GetProjectTemplate _
("WindowsApplication.zip", "VisualBasic")
' Create a new Windows Application by using the
' template obtained above.
soln.AddFromTemplate(vbTemplatePath, vbPrjPath, _
"Test2JSProj", False)
proj = soln.Projects.Item(1)
' Cast the project to a VSProject2.
vsproj = CType(proj.Object, VSProject2)
' Add a reference to System.Security.dll.
MsgBox("Adding a reference to System.Security.dll")
' Remove the <version number> in the following path
' and replace it with one of the version
' number folders that appear
' in <installation root>\WINDOWS\Microsoft.NET\Framework
' folder
vsproj.References.Add _
("C:\WINDOWS\Microsoft.NET\Framework\ _
<version number>\System.Security.dll")
impCollection = vsproj.Imports
MsgBox("The number of imports in this project is: " & vbCr _
& impCollection.Count.ToString())
MsgBox("Adding System.Security to the Imports collection.")
impCollection.Add("System.Security")
MsgBox("The number of imports in this project is now: " _
& vbCr & impCollection.Count.ToString())
Dim temp As String = ""
For i As Integer = 1 To impCollection.Count
temp = temp & impCollection.Item(i).ToString() & vbCr
Next i
MsgBox("The Imports in this project are:" & vbCr & temp)
Catch ex As System.Exception
MsgBox(ex.ToString)
End Try
End Sub
Kod Derleniyor
Bu kodu derlemeye yeni bir oluşturmak Visual Studio eklenti projesi ve örnek kodda OnConnection yönteminin kodu Değiştir. Bir eklenti çalıştırma hakkında daha fazla bilgi için bkz: Nasıl yapılır: denetim Eklenti Yöneticisi'ni kullanarak eklentileri.