Supporto per le proprietà di configurazione e di progetto
La finestra di Proprietà nell'ambiente di sviluppo integrato di (IDE) Visual Studio possibile visualizzare le proprietà di configurazione e di progetto. È possibile fornire una pagina delle proprietà per contenere il tipo di progetto in modo che l'utente possa impostare le proprietà per l'applicazione.
Selezionando un nodo di progetto in Esplora soluzioni quindi facendo clic su Proprietà scegliere dal menu di Progetto , è possibile aprire una finestra di dialogo che include le proprietà di configurazione e di progetto. In Visual C# e in Visual Basice i tipi di progetto derivati da questi linguaggi, questa finestra di dialogo viene visualizzata come una pagina a schede in Generale, Ambiente, finestra di dialogo Opzioni. Per ulteriori informazioni, vedere Walkthrough: Exposing Project and Configuration Properties.
Il pacchetto gestito Framework per i progetti (MPFProj) fornisce le classi di supporto per creare e gestire il nuovo sistema del progetto. È possibile trovare istruzioni di compilazione e del codice sorgente su MPF per i progetti di Visual Studio 2010.
Persistenza delle proprietà di configurazione e di progetto
Le proprietà di configurazione e di progetto vengono mantenute in un file di progetto con estensione di file associate al tipo di progetto, ad esempio, csproj, vbproj e .myproj. I progetti di linguaggio utilizzano generalmente un file modello per generare il file di progetto. Tuttavia, vi sono effettivamente diversi modi per associare i tipi di progetto e modelli. Per ulteriori informazioni, vedere Visual Studio Templates e Descrizione della directory del modello. File Vsdir).
Le proprietà di configurazione e di progetto vengono create aggiungendo elementi al file modello. Queste proprietà sono quindi disponibili per qualsiasi progetto creato utilizzando il tipo di progetto che utilizza questo modello. Visual C# projects and the MPFProj both use the MSBuild schema for template files. Questi file hanno una sezione PropertyGroup per ogni configurazione. Le proprietà dei progetti in genere vengono salvate in modo permanente nella prima sezione PropertyGroup, con un argomento di configurazione impostato su una stringa null.
Il codice seguente viene illustrato l'inizio di un file di progetto MSBuild di base.
<Project MSBuildVersion="2.0" DefaultTargets="Build" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Name>SomeProjectSix</Name>
<SchemaVersion>2.0</SchemaVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<Optimize>false</Optimize>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<Optimize>true</Optimize>
In questo file di progetto, <Name> e <SchemaVersion> sono proprietà del progetto e <Optimize> è una proprietà di configurazione.
È responsabilità del progetto mantenere le proprietà di configurazione e del progetto file di progetto.
Nota
Un progetto può ottimizzare la persistenza salvano in modo permanente solo i valori di proprietà diversi dai valori predefiniti.
Supporto per le proprietà di configurazione e di progetto
La classe implementa l'interfaccia di Microsoft.VisualStudio.Package.SettingsPage i modelli di progetto e le pagine delle proprietà di configurazione. L'implementazione predefinita di DialogPage offre le proprietà pubbliche a un utente come categoria. Il metodo di Microsoft.VisualStudio.Package.HierarchyNode.GetPropertyPageGuids selezionare le classi derivate da SettingsPage per le griglie della proprietà del progetto. Il metodo di Microsoft.VisualStudio.Package.ProjectNode.GetConfigPropertyPageGuids selezionare le classi derivate da SettingsPage per le griglie delle proprietà di configurazione. Il tipo di progetto deve eseguire l'override di questi metodi per selezionare le pagine delle proprietà appropriate.
La classe di SettingsPage e la classe di Microsoft.VisualStudio.Package.ProjectNode offrono questi metodi per mantenere le proprietà di configurazione e di progetto:
Microsoft.VisualStudio.Package.ProjectNode.GetProjectProperty e Microsoft.VisualStudio.Package.ProjectNode.SetProjectProperty persistenti le proprietà del progetto.
Microsoft.VisualStudio.Package.SettingsPage.GetConfigProperty e Microsoft.VisualStudio.Package.SettingsPage.SetConfigProperty persistenti le proprietà di configurazione.
Nota
Le implementazioni di classi di Microsoft.VisualStudio.Package.ProjectNode e di Microsoft.VisualStudio.Package.SettingsPage utilizzano i metodi di Microsoft.Build.BuildEngine (MSBuild) per ottenere e proprietà di progetto e di configurazione del file di progetto.
La classe che deriva da SettingsPage deve implementare Microsoft.VisualStudio.Package.SettingsPage.ApplyChanges e Microsoft.VisualStudio.Package.SettingsPage.BindProperties per mantenere le proprietà di configurazione o del progetto file di progetto.
Percorso del Registro Di Sistema e di ProvideObjectAttribute
Le classi derivate da SettingsPage sono progettate per essere condivise tra Vspackage. Per consentire a un VSPackage creare una classe derivata da SettingsPage, aggiungere Microsoft.VisualStudio.Shell.ProvideObjectAttribute a una classe derivata da Microsoft.VisualStudio.Shell.Package.
<ProvideObject(GetType(MyProjectPropertyPage))> _
<Guid("e815d8ad-49bf-427d-99c8-009db3e56ab9")> _
Public Class MyPackage
Inherits Package
[ProvideObject(typeof(MyProjectPropertyPage))]
[Guid("e815d8ad-49bf-427d-99c8-009db3e56ab9")]
public sealed class MyPackage : Package
Il package VS a cui l'attributo è associato non è importante. When a VSPackage is registered with Visual Studio, the class id (CLSID) of any object that can be created is registered so that a call to CreateInstance can create it.
Il percorso del Registro di sistema di un oggetto che può essere creato viene determinato combinando UserRegistryRoot, la parola, il CLSID e il GUID del tipo di oggetto. Se la classe di MyProjectPropertyPage ha un GUID {di 3c693da2-5bca-49b3-bd95-ffe0a39dd723} e il UserRegistryRoot è \Software\Microsoft\VisualStudio\8.0Exp, then the registry path would be HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp\CLSID \ {HKEY_CURRENT_USER 3c693da2-5bca-49b3-bd95-ffe0a39dd723}.
Attributi e layout delle proprietà di configurazione e di progetto
CategoryAttribute, DisplayNameAttributee gli attributi di DescriptionAttribute determinano il layout, il contrassegno e la descrizione delle proprietà di configurazione e di progetto in una pagina delle proprietà generica. Questi attributi determinano la categoria, il nome visualizzato e la descrizione dell'opzione, rispettivamente.
Nota
Gli attributi equivalenti, SRCategory, LocDisplayName e SRDescription, risorse di tipo stringa di utilizzo per la localizzazione e sono definiti in MPF per i progetti di Visual Studio 2010.
Si consideri il frammento di codice riportato di seguito.
Private _myConfigProp As String
Private _isDirty As Boolean
Public Property IsDirty As Boolean
Get
Return _isDirty
End Get
Set(ByVal value As Boolean)
_isDirty = value
End Set
End Property
<Category("My Category")> _
<DisplayName("My Config Property")> _
<Description("My Description")> _
Public Property MyConfigProp() As String
Get
Return _myConfigProp
End Get
Set(ByVal value As String)
_myConfigProp = value
IsDirty = True
End Set
End Property
public bool IsDirty { get; set; }
private string myConfigProp;
[Category("My Category")]
[DisplayName("My Config Property")]
[Description("My Description")]
public string MyConfigProp
{
get { return myConfigProp; }
set { myConfigProp = value; IsDirty = true; }
}
La proprietà di configurazione di MyConfigProp verrà visualizzata la pagina delle proprietà di configurazione come Con La proprietà di configurazione nella categoria, Con La categoria. Se l'opzione è selezionata, la descrizione, Con La descrizione, viene visualizzata nel pannello di descrizione.
Vedere anche
Attività
Procedura: Aggiungere e rimuovere le pagine delle proprietà
Concetti
Descrizione della directory del modello. File Vsdir)