Procedura dettagliata: creazione di un passaggio di distribuzione personalizzato per progetti SharePoint
Quando si distribuisce un progetto SharePoint, Visual Studio esegue una serie di passaggi di distribuzione in un ordine specifico.Visual Studio include molti passaggi di distribuzione incorporati, tuttavia è possibile crearne di personalizzati.
In questa procedura dettagliata, verrà creato un passaggio di distribuzione personalizzato per aggiornare soluzioni in un server che esegue SharePoint.Visual Studio include passaggi di distribuzione incorporati per molte attività, tali soluzioni di ritrazione o l'aggiunta, ma non include un passaggio di distribuzione per l'aggiornamento delle soluzioni.Per impostazione predefinita, quando si distribuisce una soluzione SharePoint, tramite Visual Studio prima ritrae la soluzione (se è già distribuito) e quindi ridistribuisce l'intera soluzione.Per ulteriori informazioni sui passaggi di distribuzione incorporati, vedere Distribuzione, pubblicazione e aggiornamento dei pacchetti delle soluzioni SharePoint.
In questa procedura dettagliata vengono illustrate le attività seguenti:
Creazione di un'estensione di Visual Studio che esegue due attività principali:
L'estensione definisce un passaggio di distribuzione personalizzato per aggiornare soluzioni SharePoint.
L'estensione crea un'estensione di progetto che definisce una nuova configurazione di distribuzione, un set di passaggi di distribuzione eseguito per un progetto specifico.La nuova configurazione di distribuzione include il passaggio di distribuzione personalizzato e molti passaggi di distribuzione incorporati.
Creazione di due comandi di SharePoint personalizzati che l'assembly di estensioni chiama.I comandi di SharePoint sono metodi che possono essere chiamati dagli assembly di estensioni per utilizzare le API nel modello a oggetti del server di SharePoint.Per ulteriori informazioni, vedere Chiamate ai modelli a oggetti di SharePoint.
Compilazione di un pacchetto Visual Studio Extension (VSIX) per distribuire entrambi gli assembly.
Test del nuovo passaggio di distribuzione.
Prerequisiti
Per completare la procedura dettagliata, nel computer di sviluppo devono essere presenti i componenti elencati di seguito:
Edizioni supportate di Windows, SharePoint e Visual Studio.Per ulteriori informazioni, vedere Requisiti per lo sviluppo di soluzioni SharePoint.
Visual Studio SDK.In questa procedura dettagliata viene utilizzato il modello VSIX Project di SDK per creare un pacchetto VSIX e distribuire l'estensione.Per ulteriori informazioni, vedere Estensione degli strumenti di SharePoint in Visual Studio.
Per completare la procedura dettagliata è consigliabile conoscere i concetti riportati di seguito:
Utilizzo del modello a oggetti del server di SharePoint.Per ulteriori informazioni, vedere l'articolo relativo all'utilizzo del modello a oggetti lato server di SharePoint Foundation (la pagina potrebbe essere in inglese).
Soluzioni SharePoint.Per ulteriori informazioni, vedere Cenni preliminari sulle soluzioni (la pagina potrebbe essere in inglese).
Aggiornamento delle soluzioni SharePoint.Per ulteriori informazioni, vedere l'articolo relativo all'aggiornamento di una soluzione (la pagina potrebbe essere in inglese).
Creazione dei progetti
Per completare questa procedura dettagliata, è necessario creare tre progetti:
Un progetto VSIX per creare il pacchetto VSIX allo scopo di distribuire l'estensione.
Un progetto Libreria di classi che implementa l'estensione.Questo progetto deve essere destinato a .NET Framework 4,5.
Un progetto Libreria di classi che definisce i comandi di SharePoint personalizzati.Questo progetto deve essere destinato a .NET Framework 3.5.
Iniziare la procedura dettagliata creando i progetti.
Per creare il progetto VSIX
Avviare Visual Studio.
Sulla barra dei menu, scegliere Il file, Nuova, Project.
Nella finestra di dialogo Nuovo progetto, espandere i nodi Visual Basic o Visual C# quindi selezionare il nodo Extensibility.
[!NOTA]
Il nodo Extensibility è disponibile solo se si installa Visual Studio SDK.Per ulteriori informazioni, vedere la sezione precedente relativa ai prerequisiti.
Nella parte superiore della finestra di dialogo, scegliere .NET Framework 4.5 nell'elenco delle versioni di.NET Framework.
Scegliere il modello Progetto VSIX, denominare il progetto UpgradeDeploymentStepquindi scegliere il pulsante OK.
Visual Studio aggiunge il progetto UpgradeDeploymentStep a Esplora soluzioni.
Per creare il progetto di estensione
In Esplora soluzioni, aprire il menu di scelta rapida del nodo della soluzione UpgradeDeploymentStep, scegliere Aggiungiquindi scegliere Nuovo progetto.
[!NOTA]
Nei progetti di Visual Basic, il nodo della soluzione viene visualizzato in Esplora soluzioni solo quando la casella di controllo Mostra sempre soluzione viene selezionata in General, Projects and Solutions, Options Dialog Box.
Nella finestra di dialogo Nuovo progetto, espandere i nodi Visual Basic o Visual C# quindi selezionare il nodo Finestre.
Nella parte superiore della finestra di dialogo, scegliere .NET Framework 4.5 nell'elenco delle versioni di.NET Framework.
Scegliere il modello di progetto Libreria di classi, denominare il progetto DeploymentStepExtensionquindi scegliere il pulsante OK.
In Visual Studio il progetto DeploymentStepExtension viene aggiunto alla soluzione e viene aperto il file di codice predefinito Class1.
Eliminare il file di codice Class1 dal progetto.
Per creare il progetto di comandi di SharePoint
In Esplora soluzioni, aprire il menu di scelta rapida del nodo della soluzione UpgradeDeploymentStep, scegliere Aggiungiquindi scegliere Nuovo progetto.
[!NOTA]
Nei progetti di Visual Basic, il nodo della soluzione viene visualizzato in Esplora soluzioni solo quando la casella di controllo Mostra sempre soluzione viene selezionata in General, Projects and Solutions, Options Dialog Box.
Nella finestra di dialogo Nuovo progetto, espandere Visual C# o Visual Basicquindi selezionare il nodo Finestre.
Nella parte superiore della finestra di dialogo, scegliere .NET Framework 3.5 nell'elenco delle versioni di.NET Framework.
Scegliere il modello di progetto Libreria di classi, denominare il progetto SharePointCommandsquindi scegliere il pulsante OK.
Visual Studio aggiunge il progetto SharePointCommands alla soluzione e apre il file di codice predefinito Class1.
Eliminare il file di codice Class1 dal progetto.
Configurazione dei progetti
Prima di scrivere codice per creare il passaggio di distribuzione personalizzato, è necessario aggiungere file di codice e i riferimenti ad assembly e configurare i progetti.
Per configurare il progetto DeploymentStepExtension
Nel progetto DeploymentStepExtension, aggiungere due file di codice con i nomi seguenti:
UpgradeStep
DeploymentConfigurationExtension
Aprire il menu di scelta rapida del progetto DeploymentStepExtension quindi scegliere Aggiungi riferimento.
Nella scheda Framework, selezionare la casella di controllo dell'assembly System.ComponentModel.Composition.
Nella scheda Estensioni, selezionare la casella di controllo per un assembly Microsoft.VisualStudio.SharePoint quindi scegliere il pulsante OK.
Per configurare il progetto SharePointCommands
Nel progetto SharePointCommands, aggiungere un file di codice denominato Commands.
In Esplora soluzioni, aprire il menu di scelta rapida del nodo del progetto SharePointCommands quindi scegliere Aggiungi riferimento.
Nella scheda Estensioni, selezionare le caselle di controllo per i seguenti assembly quindi fare clic sul pulsante OK
Microsoft.SharePoint
Microsoft.VisualStudio.SharePoint.Commands
Definizione del passaggio di distribuzione personalizzato
Creare una classe che definisce il passaggio di distribuzione dell'aggiornamento.Per definire il passaggio di distribuzione, la classe implementa l'interfaccia IDeploymentStep.Implementare questa interfaccia quando si desidera definire un passaggio di distribuzione personalizzato.
Per definire il passaggio di distribuzione personalizzato
Nel progetto DeploymentStepExtension, aprire il file di codice UpgradeStep e quindi incollare il codice seguente in.
[!NOTA]
Dopo aver aggiunto questo codice, il progetto presenterà alcuni errori di compilazione, ma verranno risolti quando si aggiunge codice nei passaggi successivi.
Imports System Imports Microsoft.VisualStudio.SharePoint Imports Microsoft.VisualStudio.SharePoint.Deployment Imports System.ComponentModel.Composition Namespace Contoso.DeploymentSteps.Upgrade ' Export attribute: Enables Visual Studio to discover and load this deployment step. ' DeploymentStep attribute: Specifies the ID for this new deployment step. ' UpgradeStep class: Defines a new deployment step that can be used to upgrade a solution ' on a SharePoint site. <Export(GetType(IDeploymentStep))> _ <DeploymentStep("Contoso.DeploymentSteps.UpgradeSolution")> _ Friend Class UpgradeStep Implements IDeploymentStep Private solutionName As String Private solutionFullPath As String Private Sub Initialize(ByVal stepInfo As IDeploymentStepInfo) _ Implements IDeploymentStep.Initialize stepInfo.Name = "Upgrade solution" stepInfo.StatusBarMessage = "Upgrading solution..." stepInfo.Description = "Upgrades the solution on the local machine." End Sub ' Specifies whether the solution can be upgraded. Private Function CanExecute(ByVal context As IDeploymentContext) As Boolean _ Implements IDeploymentStep.CanExecute ' SharePoint returns all the installed solutions names in lower case. solutionName = (context.Project.Package.Model.Name & ".wsp").ToLower() solutionFullPath = context.Project.Package.OutputPath Dim solutionExists As Boolean = _ context.Project.SharePointConnection.ExecuteCommand(Of String, Boolean)( "Contoso.Commands.IsSolutionDeployed", solutionName) ' Throw exceptions in error cases because deployment cannot proceed. If context.Project.IsSandboxedSolution = True Then Dim sandboxMessage As String = "Cannot upgrade the solution. Upgrade deployment " & _ "configuration does not support Sandboxed solutions." context.Logger.WriteLine(sandboxMessage, LogCategory.Error) Throw New InvalidOperationException() ElseIf solutionExists = False Then Dim notDeployedMessage As String = String.Format("Cannot upgrade the solution. The IsSolutionDeployed " & _ "command cannot find the following solution on the SharePoint site: {0}.", solutionName) context.Logger.WriteLine(notDeployedMessage, LogCategory.Error) Throw New InvalidOperationException(notDeployedMessage) End If ' Execute step and continue with deployment. Return True End Function Private Sub Execute(ByVal context As IDeploymentContext) _ Implements IDeploymentStep.Execute context.Logger.WriteLine("Upgrading solution: " & solutionName, LogCategory.Status) context.Project.SharePointConnection.ExecuteCommand("Contoso.Commands.UpgradeSolution", _ solutionFullPath) End Sub End Class End Namespace
using System; using Microsoft.VisualStudio.SharePoint; using Microsoft.VisualStudio.SharePoint.Deployment; using System.ComponentModel.Composition; namespace Contoso.DeploymentSteps.Upgrade { // Enables Visual Studio to discover and load this deployment step. [Export(typeof(IDeploymentStep))] // Specifies the ID for this new deployment step. [DeploymentStep("Contoso.DeploymentSteps.UpgradeSolution")] // Defines a new deployment step that can be used to upgrade a solution on a SharePoint site. internal class UpgradeStep : IDeploymentStep { private string solutionName; private string solutionFullPath; // Implements IDeploymentStep.Initialize. public void Initialize(IDeploymentStepInfo stepInfo) { stepInfo.Name = "Upgrade solution"; stepInfo.StatusBarMessage = "Upgrading solution..."; stepInfo.Description = "Upgrades the solution on the local machine."; } // Implements IDeploymentStep.CanExecute. Specifies whether the solution can be upgraded. public bool CanExecute(IDeploymentContext context) { // SharePoint returns all the installed solutions names in lower case. solutionName = (context.Project.Package.Model.Name + ".wsp").ToLower(); solutionFullPath = context.Project.Package.OutputPath; bool solutionExists = context.Project.SharePointConnection.ExecuteCommand<string, bool>( "Contoso.Commands.IsSolutionDeployed", solutionName); // Throw exceptions in error cases because deployment cannot proceed. if (context.Project.IsSandboxedSolution) { string sandboxMessage = "Cannot upgrade the solution. The upgrade deployment configuration " + "does not support Sandboxed solutions."; context.Logger.WriteLine(sandboxMessage, LogCategory.Error); throw new InvalidOperationException(sandboxMessage); } else if (!solutionExists) { string notDeployedMessage = string.Format("Cannot upgrade the solution. The IsSolutionDeployed " + "command cannot find the following solution: {0}.", solutionName); context.Logger.WriteLine(notDeployedMessage, LogCategory.Error); throw new InvalidOperationException(notDeployedMessage); } // Execute step and continue with deployment. return true; } // Implements IDeploymentStep.Execute. public void Execute(IDeploymentContext context) { context.Logger.WriteLine("Upgrading solution: " + solutionName, LogCategory.Status); context.Project.SharePointConnection.ExecuteCommand("Contoso.Commands.UpgradeSolution", solutionFullPath); } } }
Creazione di una configurazione di distribuzione che include il passaggio di distribuzione personalizzato
Creare un'estensione di progetto per la nuova configurazione di distribuzione, che include molti passaggi di distribuzione incorporati e il nuovo passaggio di distribuzione di aggiornamento.Crea questa estensione, aiutate gli sviluppatori di SharePoint a utilizzare il passaggio di distribuzione di aggiornamento nei progetti SharePoint.
Per creare la configurazione di distribuzione, la classe implementa l'interfaccia ISharePointProjectExtension.Implementare questa interfaccia quando si desidera creare un'estensione di progetto SharePoint.
Per creare la configurazione di distribuzione
Nel progetto DeploymentStepExtension, aprire il file di codice DeploymentConfigurationExtension quindi incollare il codice seguente in.
Imports Microsoft.VisualStudio.SharePoint Imports Microsoft.VisualStudio.SharePoint.Deployment Imports System.ComponentModel.Composition Namespace Contoso.DeploymentSteps.Upgrade ' Export attribute: Enables Visual Studio to discover and load this project-level extension. ' DeploymentConfigurationExtension class: Defines a project-level extension. The extension creates ' a new deployment configuration that includes the upgrade deployment step. <Export(GetType(ISharePointProjectExtension))> _ Friend Class DeploymentConfigurationExtension Implements ISharePointProjectExtension Private Sub Initialize(ByVal projectService As ISharePointProjectService) _ Implements ISharePointProjectExtension.Initialize AddHandler projectService.ProjectInitialized, AddressOf ProjectInitialized End Sub ' Creates the new deployment configuration. Private Sub ProjectInitialized(ByVal Sender As Object, ByVal e As SharePointProjectEventArgs) Dim deploymentSteps As String() = New String() _ { DeploymentStepIds.PreDeploymentCommand, _ DeploymentStepIds.RecycleApplicationPool, _ "Contoso.DeploymentSteps.UpgradeSolution", _ DeploymentStepIds.PostDeploymentCommand _ } Dim retractionSteps As String() = New String() _ { DeploymentStepIds.RecycleApplicationPool, _ DeploymentStepIds.RetractSolution } Dim configuration As IDeploymentConfiguration = e.Project.DeploymentConfigurations.Add( _ "Upgrade", deploymentSteps, retractionSteps) configuration.Description = "This is the upgrade deployment configuration" End Sub End Class End Namespace
using Microsoft.VisualStudio.SharePoint; using Microsoft.VisualStudio.SharePoint.Deployment; using System.ComponentModel.Composition; namespace Contoso.DeploymentSteps.Upgrade { // Enables Visual Studio to discover and load this project-level extension. [Export(typeof(ISharePointProjectExtension))] // Defines a project-level extension. The extension creates a new deployment configuration that includes the // upgrade deployment step. internal class DeploymentConfigurationExtension : ISharePointProjectExtension { // Implements ISharePointProjectExtension.Initialize. public void Initialize(ISharePointProjectService projectService) { projectService.ProjectInitialized += ProjectInitialized; } // Creates the new deployment configuration. private void ProjectInitialized(object sender, SharePointProjectEventArgs e) { string[] deploymentSteps = new string[] { DeploymentStepIds.PreDeploymentCommand, DeploymentStepIds.RecycleApplicationPool, "Contoso.DeploymentSteps.UpgradeSolution", DeploymentStepIds.PostDeploymentCommand }; string[] retractionSteps = new string[] { DeploymentStepIds.RecycleApplicationPool, DeploymentStepIds.RetractSolution }; IDeploymentConfiguration configuration = e.Project.DeploymentConfigurations.Add( "Upgrade", deploymentSteps, retractionSteps); configuration.Description = "This is the upgrade deployment configuration"; } } }
Creazione di comandi personalizzati di SharePoint
Creare due controlli personalizzati che effettuano chiamate nel modello a oggetti del server di SharePoint.Un comando determina se una soluzione è già distribuita, l'altro aggiorna una soluzione.
Per definire i comandi di SharePoint
Nel progetto SharePointCommands, aprire il file di codice dei comandi e quindi incollare il codice seguente in.
Imports System Imports System.IO Imports Microsoft.SharePoint Imports Microsoft.SharePoint.Administration Imports Microsoft.VisualStudio.SharePoint.Commands Namespace Contoso.DeploymentSteps.Upgrade Friend Class Commands ' Determines whether the specified solution has been deployed to the local SharePoint server. <SharePointCommand("Contoso.Commands.IsSolutionDeployed")> _ Private Function IsSolutionDeployed(ByVal context As ISharePointCommandContext, ByVal solutionName As String) As Boolean Dim solution As SPSolution = SPFarm.Local.Solutions(solutionName) Return solution IsNot Nothing End Function ' Upgrades the specified solution to the local SharePoint server. <SharePointCommand("Contoso.Commands.UpgradeSolution")> _ Private Sub UpgradeSolution(ByVal context As ISharePointCommandContext, ByVal fullWspPath As String) Dim solution As SPSolution = SPFarm.Local.Solutions(Path.GetFileName(fullWspPath)) If solution Is Nothing Then Throw New InvalidOperationException("The solution has not been deployed.") End If solution.Upgrade(fullWspPath) End Sub End Class End Namespace
using System; using System.IO; using Microsoft.SharePoint; using Microsoft.SharePoint.Administration; using Microsoft.VisualStudio.SharePoint.Commands; namespace Contoso.DeploymentSteps.Upgrade { internal class Commands { // Determines whether the specified solution has been deployed to the local SharePoint server. [SharePointCommand("Contoso.Commands.IsSolutionDeployed")] private bool IsSolutionDeployed(ISharePointCommandContext context, string solutionName) { SPSolution solution = SPFarm.Local.Solutions[solutionName]; return solution != null; } // Upgrades the specified solution to the local SharePoint server. [SharePointCommand("Contoso.Commands.UpgradeSolution")] private void UpgradeSolution(ISharePointCommandContext context, string fullWspPath) { SPSolution solution = SPFarm.Local.Solutions[Path.GetFileName(fullWspPath)]; if (solution == null) { throw new InvalidOperationException("The solution has not been deployed."); } solution.Upgrade(fullWspPath); } } }
Verifica
In questa fase della procedura dettagliata, tutto il codice per il passaggio di distribuzione personalizzato e i comandi di SharePoint si trovano nei progetti.Compilare questi ultimi per assicurarsi che vengano compilati senza errori.
Per compilare progetti
In Esplora soluzioni, aprire il menu di scelta rapida del progetto DeploymentStepExtension quindi scegliere Compilazione.
Aprire il menu di scelta rapida del progetto SharePointCommands quindi scegliere Compilazione.
Creazione di un pacchetto VSIX per distribuire l'estensione
Per distribuire l'estensione, utilizzare il progetto VSIX nella soluzione per creare un pacchetto VSIX.Innanzitutto, configurare il pacchetto VSIX modificando il file source.extension.vsixmanifest nel progetto VSIX.Successivamente creare il pacchetto VSIX compilando la soluzione.
Per configurare e creare il pacchetto VSIX
In Esplora soluzioni, sotto il progetto UpgradeDeploymentStep, aprire il menu di scelta rapida per il file source.extension.vsixmanifest quindi scegliere Apri.
Visual Studio consente di aprire il file nell'editor del manifesto.Il file source.extension.vsixmanifest è la base del file extension.vsixmanifest che tutti i pacchetti VSIX richiedono.Per ulteriori informazioni su questo file, vedere Informazioni di riferimento sullo schema dell'estensione VSIX.
Nella casella Nome prodotto, immettere Aggiorna fase di distribuzione per progetti SharePoint.
Nella casella Autore, immettere Contoso.
Nella casella Descrizione, immettere Fornisce un passaggio di distribuzione personalizzato di aggiornamento che può essere utilizzato nei progetti SharePoint.
Nella scheda Asset dell'editor, scegliere il pulsante Nuova.
La finestra di dialogo Aggiungi nuovo asset visualizzato.
Nell'elenco Tipo, scegliere Microsoft.VisualStudio.MefComponent.
[!NOTA]
Questo valore corrisponde all'elemento MefComponent del file extension.vsixmanifest.Questo elemento specifica il nome di un assembly dell'estensione nel pacchetto VSIX.Per ulteriori informazioni, vedere MEFComponent Element.
Nell'elenco Alimentazione, scegliere Progetto nella soluzione corrente.
Nell'elenco Project, scegliere DeploymentStepExtensionquindi scegliere il pulsante OK.
Nell'editor del manifesto, scegliere nuovamente il pulsante Nuova.
La finestra di dialogo Aggiungi nuovo asset visualizzato.
Nell'elenco Tipo, immettere SharePoint.Commands.v4.
[!NOTA]
Questo elemento specifica un'estensione personalizzata che si desidera includere nell'estensione di Visual Studio.Per ulteriori informazioni, vedere Elemento di risorsa (schema VSX).
Nell'elenco Alimentazione, scegliere Progetto nella soluzione corrente.
Nell'elenco Project, scegliere SharePointCommandsquindi scegliere il pulsante OK.
Sulla barra dei menu, scegliere Compilazione, Compila soluzionequindi assicurarsi che la soluzione venga compilato senza errori.
Verificare che la cartella di output di compilazione per il progetto UpgradeDeploymentStep adesso contenga il file UpgradeDeploymentStep.vsix.
Per impostazione predefinita, la cartella dell'output di compilazione è ..\bin\Debug sotto la cartella che contiene il file di progetto.
Preparazione del test del passaggio di distribuzione dell'aggiornamento
Per testare il passaggio di distribuzione dell'aggiornamento, è necessario innanzitutto distribuire una soluzione di esempio al sito di SharePoint.Innanzitutto, avviare il debug dell'estensione nell'istanza sperimentale di Visual Studio.Creare una definizione e un'istanza di elenco da utilizzare per testare il passaggio di distribuzione e quindi distribuirle al sito di SharePoint.Successivamente, modificare la definizione e l'istanza di elenco e ridistribuirle per illustrare il processo di distribuzione predefinito sovrascrive le soluzioni sul sito di SharePoint.
Più avanti in questa procedura dettagliata, verrà modificata la definizione e l'istanza di elenco e quindi le verrà migliorato mediante il sito di SharePoint.
Per avviare il debug dell'estensione
Riavviare Visual Studio con credenziali amministrative e aprire la soluzione UpgradeDeploymentStep.
Nel progetto DeploymentStepExtension, aprire il file di codice UpgradeStep e aggiungere un punto di interruzione alla prima riga di codice nei metodi Execute e CanExecute.
Avviare il debug scegliendo il tasto F5 o, sulla barra dei menu, scegliente Debug, Avvia debug.
In Visual Studio i file di estensione vengono installati in %UserProfile% \ AppData \ local \ Microsoft \ VisualStudio \ 11.0Exp \ extensions \ Contoso \ upgrade deployment step for SharePoint projects \ 1,0 e viene avviata un'istanza sperimentale di Visual Studio.Verificato il passaggio di distribuzione di aggiornamento in questa istanza di Visual Studio.
Per creare progetto SharePoint con una definizione e un'istanza di elenco
Nell'istanza sperimentale di Visual Studio, sulla barra dei menu, scegliere Il file, Nuova, Project.
Nella finestra di dialogo Nuovo progetto, espandere il nodo Visual C# o il nodo Visual Basic, espandere il nodo SharePoint quindi selezionare il nodo 2010.
Nella parte superiore della finestra di dialogo, verificare che .NET Framework 3.5 venga visualizzato nell'elenco delle versioni di.NET Framework.
I progetti per Microsoft SharePoint Foundation 2010 e Microsoft SharePoint Server 2010 richiedono questa versione di .NET Framework.
Nell'elenco di modelli di progetto, scegliere Progetto SharePoint 2010, denominare il progetto EmployeesListDefinitionquindi scegliere il pulsante OK.
In Personalizzazione guidata SharePoint, immettere l'url del sito che si desidera utilizzare per il debug.
In Selezionare il livello di attendibilità per la soluzione SharePoint., scegliere il pulsante di opzione Distribuisci come soluzione farm.
[!NOTA]
Il passaggio di distribuzione di aggiornamento non supporta le soluzioni create mediante sandbox.
Scegliere il pulsante Fine.
Visual Studio crea il progetto EmployeesListDefinition.
Aprire il menu di scelta rapida del progetto EmployeesListDefinition, scegliere Aggiungiquindi scegliere Nuovo elemento.
Nella finestra di dialogo Aggiungi nuovo elemento - EmployeesListDefinition, espandere il nodo SharePoint quindi selezionare il nodo 2010.
Scegliere il modello di elemento Elenco, denominare l'elemento Elenco dipendentiquindi scegliere il pulsante Aggiungi.
La personalizzazione guidata SharePoint viene visualizzata
Nella pagina Scegli impostazioni elenco, verificare le seguenti impostazioni e quindi scegliere il pulsante Fine :
Elenco dipendenti visualizzato nella casella Specifica il nome da visualizzare per l'elenco.
Il pulsante di opzione Crea un elenco personalizzabile in base a: viene scelto.
Il valore predefinito (vuoto) viene scelto nell'elenco Crea un elenco personalizzabile in base a:.
Visual Studio crea l'elemento elenco dei dipendenti con una colonna titolo e un singolo svuota l'istanza e aprire la finestra di progettazione dell'elenco.
Nella finestra di progettazione dell'elenco, nella scheda Colonne, scegliere la riga Digitare un nome di colonna nuovo o esistente quindi aggiungere le seguenti colonne nell'elenco Nome visualizzato colonna :
Nome
Società
Telefono (uff.)
Posta elettronica
Salvare tutti i file e chiudere la finestra di progettazione dell'elenco.
In Esplora soluzioni, espandere il nodo Elenco dipendenti quindi espandere il nodo figlio Istanza di elenco dipendenti.
Nel file Elements.xml, sostituire il codice XML predefinito nel file con il codice XML seguente.Questo XML modifica il nome dell'elenco a Dipendenti e aggiunge le informazioni per un dipendente che ha chiamato JIM Hance.
<?xml version="1.0" encoding="utf-8"?> <Elements xmlns="https://schemas.microsoft.com/sharepoint/"> <ListInstance Title="Employees" OnQuickLaunch="TRUE" TemplateType="10000" Url="Lists/Employees" Description="Simple list to test upgrade deployment step"> <Data> <Rows> <Row> <Field Name="Title">Hance</Field> <Field Name="FirstName">Jim</Field> <Field Name="Company">Contoso</Field> <Field Name="Business Phone">555-555-5555</Field> <Field Name="E-Mail">jim@contoso.com</Field> </Row> </Rows> </Data> </ListInstance> </Elements>
Salvare e chiudere il file Elements.xml.
Aprire il menu di scelta rapida del progetto EmployeesListDefinition quindi scegliere Apri o Proprietà.
La finestra di progettazione proprietà viene aperto.
Nella scheda SharePoint, deselezionare la casella di controllo Ritrazione automatica dopo il debug e salvare le proprietà.
Per distribuire la definizione e l'istanza di elenco
In Esplora soluzioni, selezionare il nodo del progetto EmployeesListDefinition.
Nella finestra Proprietà assicurarsi che la proprietà Configurazione distribuzione attiva sia impostata su Predefinita.
Scegliere il tasto F5 o, sulla barra dei menu, scegliere Debug, Avvia debug.
Verificare che il progetto venga compilato correttamente, il web browser aprire al sito di SharePoint, che l'elemento Elenchi nella barra avvio veloce di includere il nuovo elenco Dipendenti e che l'elenco Dipendenti include la voce per JIM Hance.
Chiudere il browser.
Per modificare e ridistribuire la definizione e l'istanza di elenco
Nel progetto EmployeesListDefinition, aprire il file Elements.xml che è un elemento figlio dell'elemento di progetto Istanza di elenco dipendenti.
Rimuovere l'elemento Data e i relativi figli per rimuovere la voce per Jim Hance dall'elenco.
Al termine, il file deve essere contenuto il seguente XML.
<?xml version="1.0" encoding="utf-8"?> <Elements xmlns="https://schemas.microsoft.com/sharepoint/"> <ListInstance Title="Employees" OnQuickLaunch="TRUE" TemplateType="10000" Url="Lists/Employees" Description="Simple list to test upgrade deployment step"> </ListInstance> </Elements>
Salvare e chiudere il file Elements.xml.
Aprire il menu di scelta rapida per l'elemento di progetto Elenco dipendenti quindi scegliere Apri o Proprietà.
Nella finestra di progettazione dell'elenco, scegliere la scheda Visualizzazioni.
Nell'elenco Colonne selezionate, scegliere Allegati, quindi scegliere la chiave < per spostarsi di colonna nell'elenco Colonne disponibili.
Ripetere il passaggio precedente per spostare la colonna Telefono (uff.) dall'elenco Colonne selezionate nell'elenco Colonne disponibili.
Tale azione consente di rimuovere questi campi dalla visualizzazione predefinita dell'elenco Employees sul sito di SharePoint.
Avviare il debug scegliendo il tasto F5 o, sulla barra dei menu, scegliente Debug, Avvia debug.
Verificare che venga visualizzata la finestra di dialogo Conflitti di distribuzione.
Questa finestra di dialogo viene visualizzata quando Visual Studio tenta di distribuire una soluzione (l'istanza di elenco) a un sito di SharePoint a cui tale soluzione è già stata assegnata.Questa finestra di dialogo non verrà visualizzata quando si esegue il passaggio di distribuzione di aggiornamento più avanti in questa procedura.
Nella finestra di dialogo Conflitti di distribuzione, scegliere il pulsante di opzione Risolvi automaticamente.
Visual Studio consente di eliminare l'istanza di elenco sul sito di SharePoint, implementa l'elemento elenco nel progetto quindi aprire il sito di SharePoint.
Nella sezione Elenchi la barra avvio veloce, scegliere l'elenco Dipendenti quindi verificare i seguenti informazioni:
Le colonne Telefono (ab.) e Allegati non vengono visualizzate in questa visualizzazione elenco.
L'elenco è vuoto.Quando è stata utilizzata la configurazione di distribuzione Predefinita per ridistribuire la soluzione, l'elenco Employees è stato sostituito con il nuovo elenco vuoto nel progetto.
Test del passaggio di distribuzione
È ora possibile testare il passaggio di distribuzione dell'aggiornamento.Innanzitutto, aggiungere un elemento all'istanza di elenco in SharePoint.Modificare la definizione e l'istanza di elenco, migliorile sul sito di SharePoint e verificare che il passaggio di distribuzione dell'aggiornamento non sovrascriva il nuovo elemento.
Per aggiungere manualmente un elemento all'elenco
Nella barra multifunzione del sito di SharePoint, nella scheda Strumenti elenco, scegliere la scheda Elementi.
Nel gruppo Nuova, scegliere Nuovo elemento.
In alternativa, è possibile scegliere il collegamento nell'elenco di elementi Aggiungi nuovo elemento stesso.
Nella finestra Dipendenti – Nuovo elemento, nella casella Titolo, immettere Amministratore di funzionalità.
Nella casella Nome, immettere Andy.
Nella casella Società, digitare Contoso.
Scegliere il pulsante Salva, verificare che il nuovo elemento venga visualizzato nell'elenco e quindi chiudere il browser.
Più avanti in questa procedura dettagliata, si utilizzerà questo elemento per verificare che il passaggio di distribuzione dell'aggiornamento non sovrascriva il contenuto di questo elenco.
Per testare il passaggio di distribuzione dell'aggiornamento
Nell'istanza sperimentale di Visual Studio, in Esplora soluzioni, aprire il menu di scelta rapida del nodo del progetto EmployeesListDefinition quindi scegliere Proprietà.
L'editor o la finestra di progettazione delle proprietà viene aperto.
Nella scheda SharePoint, impostare la proprietà Configurazione distribuzione attiva a Aggiorna.
Questa configurazione di distribuzione personalizzata include il nuovo passaggio di distribuzione di aggiornamento.
Aprire il menu di scelta rapida per l'elemento di progetto Elenco dipendenti quindi scegliere Proprietà o Apri.
L'editor o la finestra di progettazione delle proprietà viene aperto.
Nella scheda Visualizzazioni, selezionare la colonna Posta elettronica quindi scegliere la chiave < per spostarsi di colonna dall'elenco Colonne selezionate nell'elenco Colonne disponibili.
Tale azione consente di rimuovere questi campi dalla visualizzazione predefinita dell'elenco Employees sul sito di SharePoint.
Avviare il debug scegliendo il tasto F5 o, sulla barra dei menu, scegliente Debug, Avvia debug.
Verificare che il codice nell'altra istanza di Visual Studio venga interrotto nell'apposito punto impostato precedentemente nel metodo CanExecute.
Scegliere nuovamente il tasto F5 o, sulla barra dei menu, scegliere Debug, Continua.
Verificare che il codice si arresti nel punto di interruzione impostato precedentemente nel metodo Execute.
Scegliere il tasto F5 o, sulla barra dei menu, scegliere Debug, Continua un'ora finale.
Il web browser aprire il sito di SharePoint.
Nella sezione Elenchi dell'area avvio veloce, scegliere l'elenco Dipendenti quindi verificare i seguenti informazioni:
L'elemento che viene aggiunto in precedenza (per Andy, l'amministratore di funzionalità) è ancora nell'elenco.
Le colonne Indirizzo di posta elettronica e Telefono (uff.) non vengono visualizzate in questa visualizzazione elenco.
La configurazione di distribuzione Aggiorna modifica l'istanza dell'elenco Employees presente sul sito di SharePoint.Se fosse stata utilizzata la configurazione di distribuzione Predefinita anziché la configurazione Aggiorna, sarebbe stato riscontrato un conflitto di distribuzione.Visual Studio risolverebbe il conflitto sostituendo l'elenco Dipendenti e l'elemento per Andy, l'amministratore di funzionalità, verrebbe eliminato.
Pulizia del computer di sviluppo
Dopo aver completato il test del passaggio di distribuzione dell'aggiornamento, rimuovere l'istanza e la definizione di elenco dal sito di SharePoint, nonché l'estensione del passaggio di distribuzione da Visual Studio.
Per rimuovere l'istanza di elenco dal sito di SharePoint
Aprire l'elenco Dipendenti nel sito di SharePoint, se l'elenco non è già aperto.
Nella barra multifunzione del sito di SharePoint, scegliere la scheda Strumenti elenco quindi scegliere la scheda Elenco.
Nel gruppo Impostazioni, selezionare l'elemento Impostazioni elenco.
In Autorizzazioni e gestione, scegliere il comando Elimina l'elenco, scegliere OK per confermare che si desidera spostare l'elenco nel cestino e quindi chiudere il browser.
Per rimuovere la definizione di elenco dal sito di SharePoint
Nell'istanza sperimentale di Visual Studio, sulla barra dei menu, scegliere Compilazione, Ritrai.
Visual Studio ritrae la definizione di elenco dal sito di SharePoint.
Per disinstallare l'estensione
Nell'istanza sperimentale di Visual Studio, sulla barra dei menu, scegliere Strumenti, Estensioni e aggiornamenti.
La finestra di dialogo Estensioni e aggiornamenti viene aperto.
Nell'elenco di estensioni selezionare, Aggiorna fase di distribuzione per progetti SharePointquindi scegliere il comando Disinstalla.
Nella finestra di dialogo, scegliere Sì per confermare che si desidera disinstallare l'estensione quindi scegliere Riavvia ora per completare la disinstallazione.
Chiudere entrambe le istanze di Visual Studio (l'istanza sperimentale e l'istanza di Visual Studio in cui la soluzione UpgradeDeploymentStep è aperta).
Vedere anche
Concetti
Estensione della creazione di pacchetti e della distribuzione di SharePoint