Porady: uzyskiwanie dostępu do właściwości plików dla specyficznych typów projektu
Możesz ręcznie ustawić i zbadać właściwości pliku plików wchodzących w skład projektu w zintegrowanym środowisku programistycznym (IDE) Visual Studio.Aby badać właściwości pliku, otwórz projekt w Visual Studio, kliknij prawym przyciskiem myszy plik projektu, taki jak filename.cs, w Eksploratorze rozwiązań.Z menu skrótów wybierz opcję Właściwości, aby wyświetlić okno dialogowe Właściwości.Okno dialogowe Właściwości wyświetla właściwości pliku, jakie można ustawić ręcznie dla wybieranego pliku.
Przestrzeń nazwy VSLangProj80 oferuje możliwość programowego dostępu do właściwości pliku w projektach Visual C# lub Visual Basic.FileProperties2 definiuje bogaty zestaw właściwości związanych z kontrolowaniem i dostępem do informacji o pliku.Niektóre właściwości zdefiniowane w FileProperties2 nie są prawidłowe dla każdego typu pliku.Na przykład właściwość DateCreated jest definiowana dla plików kodu, ale nie dla innych plików projektów.
Aby uzyskać dostęp do określonej właściwości FileProperties2, musisz przekazać nazwę konkretnej właściwości w formie ciągu do EnvDTE.Property.Properties.Item(object index), jak pokazano w poniższym przykładzie kodu.
Project project;
ProjectItems projItems;
ProjectItem projItem;
Property prop;
project = _applicationObject.Solution.Projects.Item(1);
projItems = project.ProjectItems;
projItem = projItems.Item(1);
prop = projItem.Properties.Item("FileName");
Ten kod uzyskuje dostęp do właściwości FileName pliku w projekcie Visual C# lub Visual Basic.
W praktyce właściwości zdefiniowane we właściwości FileProperties2 są listą odwołań do dostępnych właściwości plików, które są dostępne jako elementy właściwości projektu dla projektów w języku Visual C# lub Visual Basic.
Poniższe kroki szczegółowo opisują jak programowo uzyskać dostęp do właściwości plików w dodatku Visual Studio.
[!UWAGA]
Komputer może polazać inne nazwy lub lokalizacje dla niektórych elementów interfejsu użytkownika Visual Studio w dalszych instrukcjach.Te elementy są determinowane przez numer edycji Twojego programu Visual Studio oraz Twoje ustawienia.Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.
Aby uzyskać dostęp do właściwości plików dla określonego typu projektu
Utwórz projekt dodatku Visual Studio korzystając z Visual C#.
W menu Projekt kliknij polecenie Dodaj odwołanie, kliknij kartę .NET, zaznacz pozycje VSLangProj, VSLangProj2 i VSLangProj80, a następnie kliknij przycisk OK.
Dodaj następujące za pomocą instrukcji na górze pliku Connect.cs.
using VSLangProj; using VSLangProj2; using VSLangProj80;
Dodaj następujące wywołanie metody do metody OnConnection.
public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) { _applicationObject = (DTE2)application; _addInInstance = (AddIn)addInInst; VSProjectFileProps2(_applicationObject); }
Dodaj metodę VSProjectFileProps2 bezpośrednio poniżej metody OnConnection.
public void VSProjectFileProps2(DTE2 dte) { try { // Open a Visual C# or Visual Basic project // before running this add-in. Project project; ProjectItems projItems; ProjectItem projItem; Property prop; project = _applicationObject.Solution.Projects.Item(1); projItems = project.ProjectItems; for(int i = 1 ; i <= projItems.Count; i++ ) { projItem = projItems.Item(i); prop = projItem.Properties.Item("FileName"); MessageBox.Show("The file name of item " + i + " is: " + prop.Value.ToString()); if (prop.Value.ToString().Contains(".cs") || prop.Value.ToString().Contains(".vb")) { prop = projItem.Properties.Item("FileSize"); MessageBox.Show("The file size of item " + i + " is: " + prop.Value.ToString()); prop = projItem.Properties.Item("DateCreated"); MessageBox.Show("The creation date of item " + i + " is: " + prop.Value.ToString()); } } } catch(Exception ex) { MessageBox.Show(ex.Message); } }
VSProjectFileProps2 wymienia właściwość FileName dla każdego pliku w projekcie.Następnie metoda określa, czy plik ma rozszerzenie .sc lub .vb.Jeśli tak jest, wartości właściwości Filesize i DateCreated są także wyświetlane.
Sekcja przykład ukazuje kompletny kod
Tworzenie dodatku przez kliknięcie w menu Kompilacja opcji Kompiluj rozwiązanie.
Otwórz Visual C# lub projekt Visual Basic w Visual Studio IDE.
W menu Narzędzia, kliknij Menedżer dodatkówi wybierz swój dodatek z okna dialogowego Menedżer dodatków.Kliknij OK, aby uruchomić dodatek.
Przykład
Poniższy przykład to podstawowy dodatek Visual Studio, który demonstruje sposób uzyskiwania dostępu do właściwości pliku w określonym typie projektu za pomocą automatyzacji Visual Studio.
using System;
using Extensibility;
using EnvDTE;
using EnvDTE80;
using System.Windows.Forms;
using VSLangProj;
using VSLangProj2;
using VSLangProj80;
public void OnConnection(object application,
ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
VSProjectFileProps2(_applicationObject);
}
public void VSProjectFileProps2(DTE2 dte)
{
try
{
// Open a Visual C# or Visual Basic project
// before running this add-in.
Project project;
ProjectItems projItems;
ProjectItem projItem;
Property prop;
project = _applicationObject.Solution.Projects.Item(1);
projItems = project.ProjectItems;
for(int i = 1 ; i <= projItems.Count; i++ )
{
projItem = projItems.Item(i);
prop = projItem.Properties.Item("FileName");
MessageBox.Show("The file name of item " + i + " is: "
+ prop.Value.ToString());
if (prop.Value.ToString().Contains(".cs")
|| prop.Value.ToString().Contains(".vb"))
{
prop = projItem.Properties.Item("FileSize");
MessageBox.Show("The file size of item " + i + " is: "
+ prop.Value.ToString());
prop = projItem.Properties.Item("DateCreated");
MessageBox.Show("The creation date of item " + i
+ " is: " + prop.Value.ToString());
}
}
}
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
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)
VSProjectFileProperties2(_applicationObject)
End Sub
Sub VSProjectFileProperties2(ByVal dte As DTE2)
' Open a Visual C# or Visual Basic project
' before running this add-in.
Try
Dim project As Project
Dim projItems As ProjectItems
Dim projItem As ProjectItem
Dim prop As [Property]
project = _applicationObject.Solution.Projects.Item(1)
projItems = project.ProjectItems
For i As Integer = 1 To projItems.Count
projItem = projItems.Item(i)
prop = projItem.Properties.Item("FileName")
MsgBox("The file name of item " & i & " is: " _
& prop.Value.ToString())
If (prop.Value.ToString().Contains(".cs") _
Or prop.Value.ToString().Contains(".vb")) Then
prop = projItem.Properties.Item("FileSize")
MsgBox("The file size of item " & i & " is: " _
& prop.Value.ToString())
prop = projItem.Properties.Item("DateCreated")
MsgBox("The creation date of item " & i & " is: " _
& prop.Value.ToString())
End If
Next i
Catch ex As System.Exception
MsgBox(ex.ToString)
End Try
End Sub
Kompilowanie kodu
Aby skompilować ten kod, utwórz nowy projekt dodatku Visual Studio i zastąp kod metody OnConnection kodem w przykładzie.Aby uzyskać informacje na temat uruchamiania dodatku, zobacz Porady: kontrolowanie dodatków za pomocą menedżera dodatków.
Zobacz też
Inne zasoby
Uzyskiwanie dostępu do projektu określonego typu, elementu projektu i właściwości konfiguracji