Porady: uzyskiwanie dostępu do właściwości folderów dla specyficznych typów projektu
Możesz ręcznie ustawić i zbadać właściwości folderu po otwarciu projektu w zintegrowanym środowisku programistycznym (IDE) Visual Studio i kliknięciu prawym przyciskiem myszy folderu w Solution Explorer.W menu skrótów wybierz kliknij polecenie Właściwości, aby wyświetlić okno dialogowe Właściwości.
Przestrzeń nazwy VSLangProj80 oferuje możliwość programowego dostępu do właściwości folderu w projektach Visual C# lub Visual Basic.FolderProperties2 definiuje bogaty zestaw właściwości związanych z kontrolowaniem i dostępem do informacji o folderze.Wiele właściwości zdefiniowanych w obiekcie FolderProperties2 nie jest dostępnych ręcznie z okna Właściwości.
Aby uzyskać dostęp do określonej właściwości FolderProperties2, 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;
ProjectItem folder;
Properties folderProps;
Property prop;
project = _applicationObject.Solution.Projects.Item(1);
folder = project.ProjectItems.AddFolder("MyFolder"
,Constants.vsProjectItemKindPhysicalFolder);
folderProps = folder.Properties;
prop = folderProps.Item("FullPath");
Ten kod uzyskuje dostęp do właściwości FullPath folderu w projekcie Visual C# lub Visual Basic.
W praktyce właściwości konfiguracji zdefiniowane we właściwości FolderProperties2 są listą odwołań do dostępnych właściwości folderów, które są dostępne jako elementy właściwości dla projektów w języku Visual C# lub Visual Basic.
Poniższe kroki szczegółowo opisują jak programowo uzyskać dostęp do tych właściwości 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 folderó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; VSProjectFolderProps2(_applicationObject); }
Dodaj metodę VSProjectFolderProps2 bezpośrednio poniżej metody OnConnection.
public void VSProjectFolderProps2(DTE2 dte) { try { // Open a Visual C# or Visual Basic project // before running this add-in. Project project; ProjectItem folder; Properties folderProps; Property prop; project = _applicationObject.Solution.Projects.Item(1); // Add a new folder to the project. MessageBox.Show("Adding a new folder to the project."); folder = project.ProjectItems.AddFolder("MyFolder", Constants.vsProjectItemKindPhysicalFolder); folderProps = folder.Properties; prop = folderProps.Item("FullPath"); MessageBox.Show("The full path of the new folder is:" + "\n" + prop.Value.ToString()); prop = folderProps.Item("FileName"); MessageBox.Show("The file name of the new folder is:" + "\n" + prop.Value.ToString()); prop = folderProps.Item("URL"); MessageBox.Show("The new folder has the following URL:" + "\n" + prop.Value.ToString()); } catch(Exception ex) { MessageBox.Show(ex.Message); } }
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.
Właściwości folderu dla FullPath, FileName, i URL są wyświetlane w polach wiadomości.
Przykład
Poniższy przykład to podstawowy dodatek Visual Studio, który demonstruje sposób uzyskiwania dostępu do właściwości folderu 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;
VSProjectFolderProps2(_applicationObject);
}
public void VSProjectFolderProps2(DTE2 dte)
{
try
{
// Open a Visual C# or Visual Basic project
// before running this add-in.
Project project;
ProjectItem folder;
Properties folderProps;
Property prop;
project = _applicationObject.Solution.Projects.Item(1);
// Add a new folder to the project.
MessageBox.Show("Adding a new folder to the project.");
folder =
project.ProjectItems.AddFolder("MyFolder"
,Constants.vsProjectItemKindPhysicalFolder);
folderProps = folder.Properties;
prop = folderProps.Item("FullPath");
MessageBox.Show("The full path of the new folder is:" + "\n"
+ prop.Value.ToString());
prop = folderProps.Item("FileName");
MessageBox.Show("The file name of the new folder is:" + "\n"
+ prop.Value.ToString());
prop = folderProps.Item("URL");
MessageBox.Show("The new folder has the following URL:"
+ "\n" + 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)
VSProjectConfigProperties(_applicationObject)
End Sub
Sub VSProjectConfigProperties(ByVal dte As DTE2)
' Open a Visual C# or Visual Basic project
' before running this add-in.
Try
Dim project As Project
Dim folder As ProjectItem
Dim folderProps As Properties
Dim prop As [Property]
project = _applicationObject.Solution.Projects.Item(1)
' Add a new folder to the project.
MsgBox("Adding a new folder to the project...")
folder = project.ProjectItems.AddFolder("MyFolder" _
, Constants.vsProjectItemKindPhysicalFolder)
folderProps = folder.Properties
prop = folderProps.Item("FullPath")
MsgBox("The full path of the new folder is:" & vbCr _
& prop.Value.ToString())
prop = folderProps.Item("FileName")
MsgBox("The file name of the new folder is:" & vbCr _
& prop.Value.ToString())
prop = folderProps.Item("URL")
MsgBox("The new folder has the following URL:" & vbCr _
& prop.Value.ToString())
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