Comment : accéder aux propriétés de dossiers de types de projets spécifiques
Mise à jour : novembre 2007
Vous pouvez définir et examiner manuellement des propriétés de dossier si vous ouvrez un projet dans l'environnement de développement intégré (IDE) de Visual Studio, puis cliquez avec le bouton droit sur un dossier dans l'Explorateur de solutions. Dans le menu contextuel, cliquez sur Propriétés pour afficher la boîte de dialogue Propriétés.
L'espace de noms VSLangProj80 offre un moyen d'accéder par programme à des propriétés de dossier dans des projets Visual C#, Visual J# ou Visual Basic. Plus spécifiquement, FolderProperties2 définit un jeu de propriétés enrichi pour accéder à des informations relatives aux dossiers et contrôler ces dernières. Un grand nombre de propriétés définies dans FolderProperties2 ne sont pas accessibles manuellement depuis la fenêtre Propriétés.
Pour accéder à une propriété FolderProperties2 spécifique, vous devez passer le nom de cette propriété sous forme d'une chaîne à EnvDTE.Property.Properties.Item(object index), comme illustré dans l'exemple de code ci-dessous.
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");
Ce code accède à la propriété FullPath d'un dossier dans un projet Visual C#, Visual J# ou Visual Basic.
En effet, les propriétés définies dans FolderProperties2 constituent une liste de références aux propriétés de dossiers disponibles, accessibles en tant qu'éléments de propriété pour les projets Visual C#, Visual J# ou Visual Basic.
Les étapes ci-dessous détaillent la manière d'accéder par programme à ces propriétés dans un complément Visual Studio.
Remarque : |
---|
Selon vos paramètres actifs ou votre édition, les boîtes de dialogue et les commandes de menu que vous voyez peuvent différer de celles qui sont décrites dans l'aide. Ces procédures ont été développées avec les paramètres de développement généraux actifs. Pour modifier vos paramètres, choisissez Importation et exportation de paramètres dans le menu Outils. Pour plus d'informations, consultez Paramètres Visual Studio. |
Pour accéder aux propriétés de dossiers pour un type spécifique de projet
Créez un projet de complément Visual Studio en utilisant Visual C#.
Dans le menu Projet, cliquez sur Ajouter une référence, puis sur l'onglet .NET. Ensuite, sélectionnez VSLangProj, VSLangProj2 et VSLangProj80, puis cliquez sur OK.
Ajoutez les instructions d'utilisation suivantes au début du fichier Connect.cs :
using VSLangProj; using VSLangProj2; using VSLangProj80;
Ajoutez l'appel de méthode suivant à la méthode OnConnection.
public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) { _applicationObject = (DTE2)application; _addInInstance = (AddIn)addInInst; VSProjectFolderProps2(_applicationObject); }
Ajoutez la méthode VSProjectFolderProps2 immédiatement sous la méthode OnConnection.
public void VSProjectFolderProps2(DTE2 dte) { try { // Open a Visual C#, Visual J#, 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); } }
La section Exemple fournit l'intégralité du code.
Générez le complément en cliquant sur Générer la solution dans le menu Générer.
Ouvrez un projet Visual C#, Visual J# ou Visual Basic dans l'IDE Visual Studio.
Dans le menu Outils, cliquez sur Gestionnaire de compléments, puis sélectionnez votre complément dans la boîte de dialogue Gestionnaire de compléments. Cliquez sur OK pour exécuter votre complément.
Les propriétés de dossier de FullPath, FileName et URL s'affichent dans des messages.
Exemple
L'exemple suivant est un complément Visual Studio de base qui montre comment accéder aux propriétés d'un dossier dans un type de projet spécifique, à l'aide de l'automation 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#, Visual J#, 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#, Visual J#, 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
Compilation du code
Pour compiler ce code, créez un projet de complément Visual Studio et remplacez le code de la méthode OnConnection par celui de l'exemple. Pour plus d'informations sur l'exécution d'un complément, consultez Comment : contrôler des compléments avec le Gestionnaire de compléments.