Condividi tramite


Importare elementi da un sito di SharePoint esistente

Il modello di progetto Import SharePoint Solution Package consente di riutilizzare elementi quali tipi di contenuto e campi da siti di SharePoint esistenti in una nuova soluzione SharePoint di Visual Studio. Sebbene sia possibile eseguire la maggior parte delle soluzioni importate senza modifiche, esistono alcune limitazioni e problemi da tenere in considerazione, soprattutto se si modificano gli elementi dopo averli importati.

Nota

Per importare flussi di lavoro riutilizzabili, usare il modello di progetto Importa flusso di lavoro riutilizzabile. Per altre informazioni, vedere Linee guida per l'importazione di flussi di lavoro riutilizzabili.

Soluzioni SharePoint supportate

Visual Studio 2012 supporta completamente l'importazione di soluzioni create in SharePoint Foundation e SharePoint Server.

Visual Studio 2012 non supporta l'importazione di soluzioni create nelle applicazioni seguenti:

  • Windows SharePoint Services 3.0

  • Microsoft Office SharePoint Server 2007

  • Visual Studio 2008

  • Microsoft SharePoint Designer 2007

  • Visual Studio 2010

    Anche se spesso è possibile importare correttamente soluzioni create da queste applicazioni, la funzionalità non è stata testata e non è supportata.

Restrizioni per l'importazione di elementi

Anche se la maggior parte degli elementi di SharePoint può essere importata da un file con estensione wsp esistente, gli elementi seguenti non sono supportati e potrebbero richiedere modifiche per funzionare correttamente:

  • Entità BDC

  • Elementi di associazione del flusso di lavoro di codice.

  • Flussi di lavoro di codice

  • Web part visive (.ascx)

  • Servizi Web (.asmx)

  • Associazioni al tipo di contenuto

  • Ricevitori di eventi

  • Definizioni di elenco (modelli)

  • Definizioni di sito

    Quando si esporta una soluzione da SharePoint Foundation o SharePoint Server, questi elementi vengono automaticamente esclusi dal file con estensione wsp . Tuttavia, altri file con estensione wsp generati da strumenti non supportati possono contenere questi elementi. Vedere "Soluzioni SharePoint supportate" più indietro in questo articolo.

Cosa accade quando si importa una soluzione

Quando si importa una soluzione con il modello Importa pacchetto di soluzione SharePoint, Visual Studio copia tutto il contenuto del file con estensione wsp e tenta di riconciliare e conservare il maggior numero possibile di associazioni e riferimenti tra gli elementi importati e i relativi file.

Tutti gli elementi importati vengono copiati nelle cartelle corrispondenti in Esplora soluzioni. Ad esempio, i tipi di contenuto vengono visualizzati nella cartella Tipi di contenuto e le istanze di elenco vengono visualizzate in Istanze elenco. I file associati a un elemento importato vengono copiati anche nella cartella dell'elemento. Ad esempio, un'istanza di elenco importata include i moduli, i form e le pagine ASPX corrispondenti.

Elementi dipendenti

Se si seleziona un elemento nella procedura guidata Importa pacchetto di soluzione SharePoint, ma non i relativi elementi dipendenti, una finestra di messaggio indica che è necessario selezionare anche gli elementi dipendenti prima dell'importazione.

Che cosa sono le funzionalità?

Gli utenti di SharePoint Designer possono visualizzare file imprevisti, denominati funzionalità, visualizzati nelle soluzioni importate in Esplora soluzioni. Sebbene le funzionalità esistano nella soluzione SharePoint Designer, sono state nascoste dalla visualizzazione. Le funzionalità sono ora visibili in Visual Studio.

Le funzionalità sono contenitori per gli elementi di SharePoint. Ogni caratteristica mantiene un riferimento a ogni elemento che contiene, ad esempio tipi di contenuto e definizioni di elenco. Quando si importa la soluzione, Visual Studio configura le funzionalità per tutti gli elementi importati e tenta di mantenere le relazioni tra funzionalità e elemento per i file. Tutti i file per cui non è possibile risolvere i riferimenti vengono inseriti nella cartella Altri file importati .

Per altre informazioni sulle funzionalità, vedere Sviluppare soluzioni SharePoint e Utilizzo delle funzionalità.

Gestire casi speciali

In alcuni casi, Visual Studio non è in grado di riconciliare un elemento con i file dipendenti. Tutti i file che Visual Studio non è riuscito a risolvere vengono visualizzati nella cartella Altri file importati. Inoltre, le relative proprietà DeploymentType vengono impostate su NoDeployment per evitarne la distribuzione con la soluzione.

Ad esempio, se si importa la definizione di elenco ExpenseForms, viene visualizzata una definizione di elenco con tale nome nella cartella Definizioni elenco in Esplora soluzioni insieme ai relativi file Elements.xml e Schema.xml. Tuttavia, i form ASPX e HTML associati possono essere inseriti in una cartella denominata ExpenseForms nella cartella Altri file importati . Per completare l'importazione, spostare i file nella definizione di elenco ExpenseForms in Esplora soluzioni e modificare la proprietà DeploymentType per ogni file da NoDeployment a ElementFile.

Quando si importano ricevitori di eventi, il file Elements.xml viene copiato nel percorso corretto, ma è necessario includere manualmente l'assembly nel pacchetto della soluzione in modo che venga distribuito con la soluzione. Per altre informazioni su come eseguire questa operazione, vedere Procedura: Aggiungere e rimuovere assembly aggiuntivi.

Quando si importano i flussi di lavoro, i moduli di InfoPath vengono copiati nella cartella Altri file importati . Se il file con estensione wsp contiene un modello Web, viene impostato come pagina di avvio in Esplora soluzioni.

Importare campi e contenitori di proprietà

Quando si importa una soluzione con più campi, tutte le definizioni di campo separate vengono unite in un singolo file Elements.xml in un nodo in Esplora soluzioni denominato Campi. Analogamente, tutte le voci del contenitore delle proprietà vengono unite in un file Elements.xml in un nodo denominato PropertyBags.

I campi in SharePoint sono colonne di un determinato tipo di dati, ad esempio testo, booleano o ricerca. Per altre informazioni, vedere Blocco predefinito: Colonne e tipi di campo. I contenitori delle proprietà consentono di aggiungere proprietà in vari oggetti in SharePoint, da una farm a un elenco in un sito di SharePoint. I contenitori delle proprietà vengono implementati come tabella hash di nomi di proprietà e valori. Per altre informazioni, vedere la pagina relativa alla gestione della configurazione di SharePoint oppure quella relativa alle impostazioni del contenitore delle proprietà di SharePoint.

Eliminare elementi nel progetto

La maggior parte degli elementi nelle soluzioni di SharePoint ha uno o più elementi dipendenti. Ad esempio, le istanze di elenco dipendono dai tipi di contenuto e i tipi di contenuto dipendono dai campi. Dopo l'importazione di una soluzione SharePoint, Visual Studio non segnala eventuali problemi di riferimento se si elimina un elemento nella soluzione, ma non i relativi elementi dipendenti, fino a quando non si tenta di distribuire la soluzione. Ad esempio, se una soluzione importata include un'istanza di elenco che dipende da un tipo di contenuto che viene eliminato, è possibile che si verifichi un errore al momento della distribuzione. L'errore si verifica quando l'elemento dipendente non è presente nel server SharePoint. Analogamente, se un elemento eliminato dispone anche di un contenitore di proprietà correlato, eliminare le voci del contenitore delle proprietà dal file PropertyBags Elements.xml . Di conseguenza, se si eliminano tutti gli elementi da una soluzione importata e vengono generati errori di distribuzione, verificare se devono essere eliminati anche tutti gli elementi dipendenti.

Ripristinare gli attributi delle funzionalità mancanti

Quando si importano soluzioni, alcuni attributi di funzionalità facoltativi vengono omessi dal manifesto della funzionalità importate. Se si desidera ripristinare questi attributi nel nuovo file di funzionalità, identificare gli attributi mancanti confrontando il file di funzionalità originale con il nuovo manifesto delle funzionalità e seguire le istruzioni nell'argomento Procedura: Personalizzare una funzionalità di SharePoint.

Il rilevamento dei conflitti di distribuzione non viene eseguito nelle istanze di elenco predefinite

Visual Studio non esegue il rilevamento dei conflitti di distribuzione nelle istanze di elenco predefinite, ovvero le istanze di elenco predefinite incluse in SharePoint. Il rilevamento dei conflitti non viene eseguito per evitare di sovrascrivere le istanze di elenco incorporate su SharePoint. Le istanze di elenco incorporate vengono ancora distribuite o aggiornate, ma non vengono mai eliminate o sovrascritte. Per altre informazioni, vedere Risolvere i problemi relativi alla creazione di pacchetti e alla distribuzione di SharePoint.

Importare flussi di lavoro di SharePoint Server 2010

Se si importa un flusso di lavoro creato in SharePoint Server, non verrà eseguito correttamente dopo la distribuzione. Il flusso di lavoro non viene eseguito correttamente perché alcuni assembly mancano e i flussi di lavoro di SharePoint Server contengono moduli di InfoPath attualmente non supportati nelle soluzioni del flusso di lavoro di Visual Studio. Tuttavia, i flussi di lavoro di SharePoint Server importati possono essere eseguiti correttamente dopo la correzione di alcuni elementi, ad esempio l'aggiunta di riferimenti agli assembly di SharePoint Server e la riconnessione dei moduli di InfoPath. Per altre informazioni, vedere Importazione di flussi di lavoro di SharePoint Server 2010.

Limite di caratteri nome elemento

Visual Studio ha un limite di 260 caratteri totali per i nomi dei progetti e degli elementi del progetto, incluso il percorso. Se un nome di elemento supera tale limite quando si importa una soluzione, viene generato l'errore:

Il percorso specificato, il nome file o entrambi sono troppo lunghi. Il nome di file completo deve contenere meno di 260 caratteri, mentre il nome di directory deve contenere meno di 248 caratteri.

Quando viene visualizzato questo errore, l'elemento non viene creato. Questo problema si verifica più spesso nei moduli importati. Per evitare questo problema, eseguire le operazioni seguenti:

  • Quando si immettono nomi di progetti nella finestra di dialogo Aggiungi nuovo progetto , usare nomi brevi.

  • Creare il progetto in una posizione il più vicino possibile alla cartella radice, in modo da abbreviare il percorso.

Attributo SharePointProductVersion

Se si importa una soluzione creata in una versione precedente di SharePoint, ad esempio Windows SharePoint Services 3.0 o Microsoft Office SharePoint Server 2007, modificare il valore dell'attributo SharePointProductVersion nel manifesto del pacchetto su 12.0 oppure inserire un controllo di gestione script in tutte le pagine Web importate e lasciare SharePointProductVersion impostato su 14.0. In caso contrario, i Web Form importati non vengono visualizzati in SharePoint.

Background

Le soluzioni in SharePoint Foundation e SharePoint Server includono un attributo denominato SharePointProductVersion. In SharePoint questo attributo viene usato nei manifesti di pacchetto per determinare la versione di SharePoint per cui è progettata la soluzione. I due valori validi sono 12.0 e 14.0. Il valore 12.0 indica che l'elemento è progettato per Windows SharePoint Services 3.0 o Microsoft Office SharePoint Server 2007; Un valore 14.0 indica che l'elemento è progettato per SharePoint Foundation o SharePoint Server.

Per una maggiore sicurezza durante il rendering delle pagine ASPX, SharePoint Foundation e SharePoint Server richiedono che tutte le pagine ASPX o master contengano un controllo di gestione script. Per altre informazioni sul gestore di script, vedere Panoramica del controllo ScriptManager. Poiché il controllo gestione script non era disponibile in Windows SharePoint Services 3.0 e Microsoft Office SharePoint Server 2007, è necessario aggiungerlo a qualsiasi pagina di Windows SharePoint Services 3.0 o Microsoft Office SharePoint Server 2007 aggiornata a SharePoint Foundation o SharePoint Server. Le pagine ASPX che usano una pagina master standard non richiedono un controllo di gestione di script perché ne è già stato aggiunto uno alla pagina master standard. Tuttavia, le pagine ASPX che non usano una pagina master o che utilizzano una pagina master personalizzata devono aggiungere un controllo script per funzionare in SharePoint Foundation o SharePoint Server.

L'assenza di un controllo di gestione script può essere un problema quando si importa un progetto windows SharePoint Services 3.0 o Microsoft Office SharePoint Server 2007 in Visual Studio 2010, perché l'attributo SharePointProductVersion di tutti i nuovi progetti è impostato su 14.0. Se si distribuisce un progetto aggiornato che ha un Web Form senza gestore di script, non sarà possibile visualizzare il form in SharePoint.

Vedi anche