(SPWeb, String, String, String, SPSolutionExporter.ExportMode, Boolean) del método SPSolutionExporter.ExportWebToGallery
Exporta el sitio Web especificado como una plantilla Web en la Galería de soluciones.
Espacio de nombres: Microsoft.SharePoint
Ensamblado: Microsoft.SharePoint (en Microsoft.SharePoint.dll)
Sintaxis
'Declaración
Public Shared Function ExportWebToGallery ( _
web As SPWeb, _
solutionFileName As String, _
title As String, _
description As String, _
exportMode As SPSolutionExporter.ExportMode, _
includeContent As Boolean _
) As String
'Uso
Dim web As SPWeb
Dim solutionFileName As String
Dim title As String
Dim description As String
Dim exportMode As SPSolutionExporter.ExportMode
Dim includeContent As Boolean
Dim returnValue As String
returnValue = SPSolutionExporter.ExportWebToGallery(web, _
solutionFileName, title, description, _
exportMode, includeContent)
public static string ExportWebToGallery(
SPWeb web,
string solutionFileName,
string title,
string description,
SPSolutionExporter.ExportMode exportMode,
bool includeContent
)
Parámetros
web
Tipo: Microsoft.SharePoint.SPWebSitio Web que se va a exportar.
solutionFileName
Tipo: System.StringEl nombre del archivo de solución (.wsp).
title
Tipo: System.StringEl título de la plantilla Web. El valor pasado en este parámetro se utiliza como el valor del atributo Title en el elemento de proyecto de un archivo Onet.xml .
description
Tipo: System.StringInformación detallada que describe la plantilla Web. El valor pasado en este parámetro se utiliza como el valor del atributo Description en el elemento WebTemplate en un manifiesto de elemento y también para el valor del atributo Description en el elemento de proyecto de un archivo Onet.xml .
Los usuarios ven la descripción cuando elija Nuevo sitio en el menú Acciones del sitio y, a continuación, seleccione la plantilla.
exportMode
Tipo: Microsoft.SharePoint.SPSolutionExporter.ExportModeEspecifica cuánto del sitio Web que se va a exportar. Pasar FullReuse si va a usar la plantilla Web dentro de la misma colección de sitios que el sitio Web exportado; de lo contrario, pase FullPortability.
includeContent
Tipo: System.Booleantrue para incluir el contenido de todas las listas y bibliotecas de documentos en el sitio Web; en caso contrario, false.
Valor devuelto
Tipo: System.String
Una cadena que contiene la dirección URL del nuevo archivo de solución en la Galería de soluciones. Si no se pudo crear una solución, se devuelve una cadena vacía.
Comentarios
Este método intenta copiar el nuevo archivo de solución en la Galería de soluciones con el nombre de archivo especificado. Si un archivo con este nombre ya existe, a continuación, una serie de "Nombre de archivo-2.wsp", "Nombre de archivo-3.wsp" intento en un esfuerzo por encontrar un nombre de archivo único. Si se alcanza "FileName-1000.wsp" y un archivo con ese nombre ya existe en la galería, el método produce una excepción InvalidOperationException .
El método crea una solución que contiene algunas o todas las características enumeran en la siguiente tabla. Si el sitio Web no contiene los elementos que aprovisione, se omiten las características.
Feature |
Ámbito |
Incluye |
---|---|---|
Plantilla web |
Site |
|
Instancias de listas |
Web |
|
Módulos |
Web |
|
Contenedor de propiedades |
Web |
|
Flujos de trabajo |
Web |
|
Acciones personalizadas |
Web |
Un manifiesto de elemento que contiene elementos CustomAction que definen las acciones personalizadas de ámbito Web y con ámbito de lista. |
Ejemplos
En el siguiente ejemplo es una aplicación de consola que se obtiene una referencia a un sitio Web y se llama al método ExportWebToGallery para guardar el sitio Web como una solución de plantilla Web en la Galería de soluciones. Después de exportar la solución, la aplicación llama al método GetAvailableWebTemplates para recuperar la nueva plantilla e imprime su título en la consola.
using System;
using System.IO;
using System.Linq;
using Microsoft.SharePoint;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
using (SPSite site = new SPSite("https://localhost"))
{
using (SPWeb web = site.OpenWeb("Child"))
{
string solutionFileName = "Test Site.wsp"; // If this name exists, a number is appended.
string templateTitle = String.Format("{0} Web Template", web.Title);
string templateDesc = "This template was saved programmatically.";
// Save the web as a solution in the Solutions Gallery.
string solutionFileUrl = SPSolutionExporter.ExportWebToGallery(
web,
solutionFileName,
templateTitle,
templateDesc,
SPSolutionExporter.ExportMode.FullReuse,
false // Do not include content.
);
if (!String.IsNullOrEmpty(solutionFileUrl))
{
// The solution file name might have changed, so get it from the Url.
string newFileName = Path.GetFileNameWithoutExtension(solutionFileUrl);
// Get the Web template.
SPWebTemplate template = web
.GetAvailableWebTemplates(web.Language)
.Cast<SPWebTemplate>()
.FirstOrDefault(t => t.Title == newFileName);
if (template != null)
{
// Print information about the Web template.
Console.WriteLine("Template Title: {0}", template.Title);
}
}
}
}
Console.Write("\nPress ENTER to continue....");
Console.ReadLine();
}
}
}
Imports System
Imports System.IO
Imports Microsoft.SharePoint
Module ConsoleApp
Sub Main()
Using site As New SPSite("https://localhost")
Using web As SPWeb = site.OpenWeb("Child")
' If this name exists, a number is appended.
Dim solutionFileName As String = "Test Site.wsp"
Dim templateTitle As String = String.Format("{0} Web Template", web.Title)
Dim templateDesc As String = "This template was saved programmatically."
' Save the web as a solution in the Solutions Gallery.
Dim solutionFileUrl As String = SPSolutionExporter.ExportWebToGallery(web, _
solutionFileName, _
templateTitle, _
templateDesc, _
SPSolutionExporter.ExportMode.FullReuse, _
False)
If Not String.IsNullOrEmpty(solutionFileUrl) Then
' The solution file name might have changed, so get it from the Url.
Dim newFileName As String = Path.GetFileNameWithoutExtension(solutionFileUrl)
' Get the Web template.
Dim template As SPWebTemplate = _
web.GetAvailableWebTemplates(web.Language).Cast(Of SPWebTemplate)().FirstOrDefault(Function(t) t.Title = newFileName)
If template IsNot Nothing Then
' Print information about the Web template.
Console.WriteLine("Template Title: {0}", template.Title)
End If
End If
End Using
End Using
Console.Write(vbCrLf & "Press ENTER to continue....")
Console.Read()
End Sub
End Module
Vea también
Referencia
Espacio de nombres Microsoft.SharePoint