Sdílet prostřednictvím


Názorný postup: Vytvoření položky projektu sloupec webu pomocí šablony projektu, část 1

Projekty SharePoint jsou kontejnery pro jednu nebo více položek projektu služby SharePoint.Vytvořením vlastních typů položek projektu služby SharePoint a předmětům šablonou projektu můžete rozšířit systém projektu služby SharePoint v aplikaci Visual Studio.V tomto návodu budete definovat typ položky projektu pro vytvoření sloupce webu a potom vytvoříte šablonu projektu, který lze použít k vytvoření nového projektu, který obsahuje sloupec položky projektu webu.

Tento návod demonstruje následující úkoly:

  • Vytvoření rozšíření aplikace Visual Studio, která definuje nový typ položky projektu služby SharePoint pro sloupec webu.Typ položky projektu zahrnuje jednoduché vlastní vlastnost, která se zobrazí v Vlastnosti okna.

  • Vytváření Visual Studio šablona projektu pro položku projektu.

  • Vytváření Visual Studio balíček rozšíření (VSIX) pro nasazení šablony projektu a sestavení rozšíření.

  • Ladění a testování položky projektu.

Je to samostatný návod.Po dokončení tohoto návodu přidáte průvodce do šablony projektu můžete vylepšit položky projektu.Další informace naleznete v tématu Názorný postup: Vytvoření položky projektu sloupec webu pomocí šablony projektu, část 2.

[!POZNÁMKA]

Stáhnout vzorek, který obsahuje dokončené projekty, kód a další soubory v tomto návodu z následujícího umístění: https://go.microsoft.com/fwlink/?LinkId=191369.

Požadavky

Ve vývojovém počítači potřebujete následující součásti pro dokončení tohoto návodu:

Znalost následujících koncept je užitečné, ale nejsou vyžadovány pro dokončení návodu:

Vytváření projektů

Chcete-li dokončit tento návod, je nutné vytvořit tři projekty:

  • Projekt VSIX.Tento projekt vytvoří balíček VSIX k nasazení položky projektu webu sloupce a šablony projektu.

  • Projekt šablony projektu.Tento projekt vytvoří šablonu projektu lze vytvořit nový projekt SharePoint, obsahující položky projektu sloupce webu.

  • Projekt knihovny tříd.Tento projekt implementuje rozšíření aplikace Visual Studio, která definuje chování položky projektu sloupce webu.

Začněte postup vytvořením projektů.

Pro vytvoření projektu VSIX

  1. Spusťte nástroj Visual Studio.

  2. Na panelu nabídek zvolte soubor, Nový, projektu.

  3. V horní části Nový projekt dialogové okno pole, ujistěte se, že .NET Framework 4.5 je vybrán v seznamu verze rozhraní.NET Framework.

  4. Rozbalte jazyka Visual Basic nebo Visual C# uzly a pak zvolte rozšíření uzlu.

    [!POZNÁMKA]

    Uzel Rozšiřitelnost je k dispozici pouze v případě, že nainstalujete Visual Studio 2012 SDK.Další informace naleznete v části požadavky dříve v tomto tématu.

  5. V seznamu šablon projektu zvolte Projektu VSIX.

  6. V název zadejte SiteColumnProjectItema pak zvolte OK tlačítko.

    Visual StudioPřidá SiteColumnProjectItem projektu Průzkumníku.

Vytvořit projekt šablony projektu

  1. V Průzkumníku, otevřete místní nabídku pro uzel řešení, zvolte Přidata pak zvolte Nový projekt.

    [!POZNÁMKA]

    V projektech v jazyce Visual Basic se uzel řešení zobrazí v Průzkumníku řešení pouze pokud je označeno zaškrtávací políčko Vždy zobrazit řešeníGeneral, Projects and Solutions, Options Dialog Box.

  2. V horní části Nový projekt dialogové okno pole, ujistěte se, že .NET Framework 4.5 je vybrán v seznamu verze rozhraní.NET Framework.

  3. Rozbalte Visual C# nebo jazyka Visual Basic uzel a pak zvolte rozšíření uzlu.

  4. V seznamu šablon projektu, zvolte C# šablonu projektu nebo Šablony projektu Visual Basic šablony.

  5. V název zadejte SiteColumnProjectTemplatea pak zvolte OK tlačítko.

    Visual StudioPřidá SiteColumnProjectTemplate projekt do řešení.

  6. Odstraňte soubor kódu Class1 z projektu.

  7. Pokud jste vytvořili projekt jazyka Visual Basic, odstraňte také následující soubory z projektu:

    • MyApplication.Designer.vb

    • MyApplication.myapp

    • Resources.Designer.vb

    • Resources.resx

    • Settings.Designer.vb

    • Settings.Settings

Chcete-li vytvořit projekt rozšíření

  1. V Průzkumníku, otevřete místní nabídku pro uzel řešení, zvolte Přidata pak zvolte Nový projekt.

  2. V horní části Nový projekt dialogové okno pole, ujistěte se, že .NET Framework 4.5 je vybrán v seznamu verze rozhraní.NET Framework.

  3. Rozbalte Visual C# nebo jazyka Visual Basic uzly, zvolte Windows uzel a pak zvolte Knihovny tříd šablony.

  4. V název zadejte ProjectItemTypeDefinition a pak zvolte OK tlačítko.

    Visual StudioPřidá ProjectItemTypeDefinition projekt do řešení a otevře soubor výchozího kódu Class1.

  5. Odstraňte soubor kódu Class1 z projektu.

Konfigurace projektu rozšíření

Přidejte soubory kódu a odkazy na sestavení konfigurace rozšíření projektu.

Chcete-li konfigurovat projekt

  1. V projektu ProjectItemTypeDefinition přidání souboru kódu s názvem SiteColumnProjectItemTypeProvider.

  2. Na panelu nabídek zvolte projektu, Přidat odkaz.

  3. V Reference Manager - ProjectItemTypeDefinition dialogové okno pole, rozbalte položku sestavení uzel, zvolte Framework uzel a potom zaškrtněte políčko System.ComponentModel.Composition.

  4. Zvolte rozšíření uzel, zaškrtněte políčko vedle sestavení Microsoft.VisualStudio.SharePoint a pak zvolte OK tlačítko.

Definování nového typu položky projektu SharePoint

Vytvořte třídu, která implementuje ISharePointProjectItemTypeProvider rozhraní definují chování nového typu položky projektu.Implementujte toto rozhraní pokaždé, když chcete definovat nový typ položky projektu.

Chcete-li definovat nový typ položky projektu SharePoint

  • V SiteColumnProjectItemTypeProvider kód souboru výchozí kód nahradit následující kód a potom soubor uložte.

    Imports System
    Imports System.Diagnostics
    Imports System.ComponentModel
    Imports System.ComponentModel.Composition
    Imports Microsoft.VisualStudio.SharePoint
    
    Namespace Contoso.SharePointProjectItems.SiteColumn
    
        ' Export attribute: Enables Visual Studio to discover and load this extension.
        ' SharePointProjectItemType attribute: Specifies the ID for the new project item type. This string must match the value of the 
        '     Type attribute of the ProjectItem element in the .spdata file for the project item.
        ' SiteColumnProjectItemTypeProvider class: Defines a new type of project item.
        <Export(GetType(ISharePointProjectItemTypeProvider))> _
        <SharePointProjectItemType("Contoso.SiteColumn")> _
        Partial Friend Class SiteColumnProjectItemTypeProvider
            Implements ISharePointProjectItemTypeProvider
    
            Private WithEvents projectItemTypeDefinition As ISharePointProjectItemTypeDefinition
    
            ' Configures the behavior of the project item type.
            Private Sub InitializeType(ByVal projectItemTypeDefinition As ISharePointProjectItemTypeDefinition) _
                Implements ISharePointProjectItemTypeProvider.InitializeType
    
                projectItemTypeDefinition.SupportedDeploymentScopes = _
                    SupportedDeploymentScopes.Site Or SupportedDeploymentScopes.Web
                projectItemTypeDefinition.SupportedTrustLevels = SupportedTrustLevels.All
                Me.projectItemTypeDefinition = projectItemTypeDefinition
            End Sub
    
            ' Creates a custom property for this project item.
            Private Sub ProjectItemPropertiesRequested(ByVal Sender As Object,
                ByVal e As SharePointProjectItemPropertiesRequestedEventArgs) _
                Handles projectItemTypeDefinition.ProjectItemPropertiesRequested
    
                Dim properties As SiteColumnProperties = Nothing
    
                ' If the properties object already exists, get it from the project item's annotations.
                If False = e.ProjectItem.Annotations.TryGetValue(properties) Then
                    ' Otherwise, create a new properties object and add it to the annotations.
                    properties = New SiteColumnProperties(e.ProjectItem)
                    e.ProjectItem.Annotations.Add(properties)
                End If
                e.PropertySources.Add(properties)
            End Sub
        End Class
    
        Friend Class SiteColumnProperties
            Private projectItem As ISharePointProjectItem
            Private Const TestPropertyId As String = "Contoso.SiteColumnProperty"
            Private Const PropertyDefaultValue As String = "Default custom property value."
    
            Friend Sub New(ByVal projectItem As ISharePointProjectItem)
                Me.projectItem = projectItem
            End Sub
    
            'The property gets or sets a simple string value. 
            <DisplayName("Example Property")> _
            <DescriptionAttribute("This is an example property for site column project items.")> _
            <DefaultValue(PropertyDefaultValue)> _
            Public Property ExampleProperty As String
                Get
                    Dim propertyValue As String = Nothing
    
                    ' Get the current property value if it already exists; otherwise, return a default value.
                    If False = projectItem.ExtensionData.TryGetValue(TestPropertyId, propertyValue) Then
                        propertyValue = PropertyDefaultValue
                    End If
                    Return propertyValue
                End Get
                Set(ByVal value As String)
                    If value <> PropertyDefaultValue Then
                        ' Store the property value in the ExtensionData property of the project item.
                        ' Data in the ExtensionData property persists when the project is closed.
                        projectItem.ExtensionData(TestPropertyId) = value
                    Else
                        ' Do not save the default value.
                        projectItem.ExtensionData.Remove(TestPropertyId)
                    End If
                End Set
            End Property
        End Class
    End Namespace
    
    using System;
    using System.Diagnostics;
    using System.ComponentModel;
    using System.ComponentModel.Composition;
    using Microsoft.VisualStudio.SharePoint;
    
    namespace Contoso.SharePointProjectItems.SiteColumn
    {
        // Enables Visual Studio to discover and load this extension.
        [Export(typeof(ISharePointProjectItemTypeProvider))]
    
        // Specifies the ID for the new project item type. This string must match the value of the 
        // Type attribute of the ProjectItem element in the .spdata file for the project item.
        [SharePointProjectItemType("Contoso.SiteColumn")]
    
        // Defines a new type of project item.
        internal class SiteColumnProjectItemTypeProvider : ISharePointProjectItemTypeProvider
        {
            // Implements IProjectItemTypeProvider.InitializeType. Configures the behavior of the project item type.
            public void InitializeType(ISharePointProjectItemTypeDefinition projectItemTypeDefinition)
            {
                projectItemTypeDefinition.SupportedDeploymentScopes =
                   SupportedDeploymentScopes.Site | SupportedDeploymentScopes.Web;
                projectItemTypeDefinition.SupportedTrustLevels = SupportedTrustLevels.All;
    
                // Handle event to create a custom property for this project item.
                projectItemTypeDefinition.ProjectItemPropertiesRequested +=
                    projectItemTypeDefinition_ProjectItemPropertiesRequested;
            }
    
            // Creates a custom property for this project item.
            void projectItemTypeDefinition_ProjectItemPropertiesRequested(object sender,
                SharePointProjectItemPropertiesRequestedEventArgs e)
            {
                SiteColumnProperties properties = null;
    
                // If the Properties object already exists, get it from the project item's annotations.
                if (!e.ProjectItem.Annotations.TryGetValue(out properties))
                {
                    // Otherwise, create a new Properties object and add it to the annotations.
                    properties = new SiteColumnProperties(e.ProjectItem);
                    e.ProjectItem.Annotations.Add(properties);
                }
    
                e.PropertySources.Add(properties);
            }
        }
    
        internal class SiteColumnProperties
        {
            // This class defines the property behavior.
            private ISharePointProjectItem projectItem;
            private const string propertyId = "Contoso.SiteColumnProperty";
            private const string propertyDefaultValue = "Default custom property value.";
    
            internal SiteColumnProperties(ISharePointProjectItem projectItem)
            {
                this.projectItem = projectItem;
            }
    
            // The property gets or sets a simple string value. 
            [DisplayName("Example Property")]
            [DescriptionAttribute("This is an example property for site column project items.")]
            [DefaultValue(propertyDefaultValue)]
            public string ExampleProperty
            {
                get
                {
                    string propertyValue;
    
                    // Get the current property value if it already exists; otherwise, return a default value.
                    if (!projectItem.ExtensionData.TryGetValue(propertyId, out propertyValue))
                    {
                        propertyValue = propertyDefaultValue;
                    }
                    return propertyValue;
                }
                set
                {
                    if (value != propertyDefaultValue)
                    {
                        // Store the property value in the ExtensionData property of the project item. 
                        // Data in the ExtensionData property persists when the project is closed.
                        projectItem.ExtensionData[propertyId] = value;
                    }
                    else
                    {
                        // Do not save the default value.
                        projectItem.ExtensionData.Remove(propertyId);
                    }
                }
            }
        }
    }
    

Vytvoření šablony projektu Visual Studio

Vytvořením šablony projektu povolit ostatním vývojářům vytvářet projekty SharePoint obsahující položky projektu sloupce webu.Šablona projektu SharePoint obsahuje soubory, které jsou požadovány pro všechny projekty v aplikaci Visual Studio, například .csproj nebo .vbproj a .vstemplate soubory a soubory, které jsou specifické pro projekty SharePoint.Další informace naleznete v tématu Vytvoření položky šablony a šablony aplikace Project pro položky služby SharePoint projektu.

V tomto postupu vytvoříte prázdný projekt SharePoint generovat soubory, které jsou specifické pro projekty SharePoint.Pak přidáte soubory do projektu SiteColumnProjectTemplate tak, že jste součástí šablony, který je generován z tohoto projektu.Také nakonfigurovat soubor projektu SiteColumnProjectTemplate určit, kde šablony projektu se zobrazí v Nový projekt dialogové okno.

Vytvořit soubory pro šablonu projektu

  1. Spustit druhou instanci Visual Studio s pověřeními pro správu.

  2. Vytvoření projektu SharePoint 2010 s názvem BaseSharePointProject.

    Důležitá poznámkaDůležité

    V SharePoint Průvodce vlastním nastavením, nevybírejte nasadit jako řešení farmy přepínač.

  3. Prázdný Element položky přidat do projektu a potom zadejte název položky pole1.

  4. Uložte projekt a potom zavřete druhou instanci Visual Studio.

  5. V instanci Visual Studio , která má otevřené řešení SiteColumnProjectItem, v Průzkumníku, otevřete místní nabídku pro SiteColumnProjectTemplate uzel projektu, zvolte Přidata pak zvolte Existující položku.

  6. V Přidat existující položku dialogové okno Otevřít seznam přípon souborů a zvolte všechny soubory (*. *).

  7. V adresáři, který obsahuje projekt BaseSharePointProject, vyberte soubor key.snk a pak zvolte Přidat tlačítko.

    [!POZNÁMKA]

    Šablona projektu, který vytvoříte v tomto návodu používá stejný soubor key.snk podepsat každý projekt vytvořený pomocí šablony.Rozbalte tento vzorek vytvořit soubor key.snk různé pro každou instanci projektu, naleznete v Názorný postup: Vytvoření položky projektu sloupec webu pomocí šablony projektu, část 2.

  8. Opakujte kroky 5-8 ze zadané podsložky v adresáři BaseSharePointProject přidejte následující soubory:

    • \Field1\Elements.XML

    • \Field1\SharePointProjectItem.spdata

    • \Features\Feature1\Feature1.Feature

    • \Features\Feature1\Feature1.template.XML

    • \Package\Package.Package

    • \Package\Package.template.XML

    Přidat tyto soubory přímo do projektu SiteColumnProjectTemplate; nechcete znovu vytvořit podsložky pole1, funkce nebo balíčku v projektu.Další informace o těchto souborech naleznete Vytvoření položky šablony a šablony aplikace Project pro položky služby SharePoint projektu.

Konfigurace jak vývojáři objevit šablony projektu v dialogovém okně Nový projekt

  1. V Průzkumníku, otevřete místní nabídku SiteColumnProjectTemplate uzel projektu a pak zvolte Uvolnit projekt.Pokud budete vyzváni, uložte změny souborů, zvolte Ano tlačítko.

  2. Otevření místní nabídky pro SiteColumnProjectTemplate uzel znovu a pak zvolte Upravit SiteColumnProjectTemplate.csproj nebo Upravit SiteColumnProjectTemplate.vbproj.

  3. Vyhledejte v souboru projektu následující VSTemplate prvku.

    <VSTemplate Include="SiteColumnProjectTemplate.vstemplate">
    
  4. Tento prvek nahraďte následujícím XML.

    <VSTemplate Include="SiteColumnProjectTemplate.vstemplate">
      <OutputSubPath>SharePoint\SharePoint14</OutputSubPath>
    </VSTemplate>
    

    OutputSubPath Element určuje další složky v cestě, pod kterým je vytvořena šablona projektu při sestavení projektu.Zde určené složky zajistí, že šablona projektu bude k dispozici pouze v případě, že otevřete zákazníky Nový projekt dialogové okno pole, rozbalte položku SharePoint uzel a pak zvolte 2010 uzlu.

  5. Soubor uložte a zavřete.

  6. V Průzkumníku, otevřete místní nabídku SiteColumnProjectTemplate projektu a pak zvolte Znovu načíst projekt.

Úpravy souborů šablon projektu

V projektu SiteColumnProjectTemplate upravte chování šablony projektu definovat následující soubory:

  • AssemblyInfo.cs nebo AssemblyInfo.vb

  • Elements.XML

  • SharePointProjectItem.spdata

  • Feature1.Feature

  • Package.Package

  • SiteColumnProjectTemplate.vstemplate

  • ProjectTemplate.csproj nebo ProjectTemplate.vbproj

V následujících postupech přidáte nahraditelných parametrů do některé z těchto souborů.Nahraditelný parametr je token, který začíná a končí znakem dolaru ($).Uživatel používá tuto šablonu projektu k vytvoření projektu, Visual Studio automaticky nahradí tyto parametry v novém projektu s konkrétními hodnotami.Další informace naleznete v tématu Nahraditelné parametry.

Upravit soubor AssemblyInfo.cs nebo AssemblyInfo.vb

  1. V projektu SiteColumnProjectTemplate otevřete soubor AssemblyInfo.cs nebo AssemblyInfo.vb a přidejte následující prohlášení až do začátku:

    Imports System.Security
    
    using System.Security;
    

    Když Řešení v izolovaném prostoru vlastnost projektu SharePoint je nastavena na True, Visual Studio přidá System.Security.AllowPartiallyTrustedCallersAttribute do souboru AssemblyInfo kód.Import souboru AssemblyInfo kódu v šabloně projektu však System.Security výchozí obor názvů.Je nutné přidat toto using nebo Imports prohlášení zabránit chyby kompilace.

  2. Soubor uložte a zavřete.

Úpravy souboru Elements.xml

  1. V projektu SiteColumnProjectTemplate nahradíte obsah souboru Elements.xml následujícím XML.

    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="https://schemas.microsoft.com/sharepoint/">
      <Field ID="{$guid5$}" 
          Name="$safeprojectname$" 
          DisplayName="$projectname$" 
          Type="Text" 
          Group="Custom Columns">
      </Field>
    </Elements>
    

    Nové XML, přidá Field element, který definuje název sloupce webu, jeho základní typ a skupiny do seznamu sloupce webu v galerii.Další informace o obsahu tohoto souboru naleznete v Definice schématu pole.

  2. Soubor uložte a zavřete.

Upravit soubor SharePointProjectItem.spdata

  1. V projektu SiteColumnProjectTemplate nahradíte obsah souboru SharePointProjectItem.spdata s následujícím XML.

    <?xml version="1.0" encoding="utf-8"?>
    <ProjectItem Type="Contoso.SiteColumn" DefaultFile="Elements.xml" 
                 xmlns="https://schemas.microsoft.com/VisualStudio/2010/SharePointTools/SharePointProjectItemModel">
      <Files>
        <ProjectItemFile Source="Elements.xml" Target="$safeprojectname$\" Type="ElementManifest" />
      </Files> 
    </ProjectItem>
    

    Nové XML provede následující změny v souboru:

    • Změny Type atribut ProjectItem element stejný řetězec, který je předán SharePointProjectItemTypeAttribute na definici položky projektu ( SiteColumnProjectItemTypeProvider třídy, který jste vytvořili dříve v tomto návodu).

    • Odebere SupportedTrustLevels a SupportedDeploymentScopes atributy z ProjectItem prvku.Tyto hodnoty atributů jsou zbytečné, neboť podle úrovně důvěryhodnosti a obory nasazení SiteColumnProjectItemTypeProvider třídy v projektu ProjectItemTypeDefinition.

    Další informace o obsahu .spdata souborů naleznete v tématu Referenční schéma SharePoint položky.

  2. Soubor uložte a zavřete.

Upravit soubor Feature1.feature

  1. V projektu SiteColumnProjectTemplate nahradíte obsah souboru Feature1.feature s následujícím XML.

    <?xml version="1.0" encoding="utf-8"?>
    <feature xmlns:dm0="https://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" dslVersion="1.0.0.0" Id="$guid4$" featureId="$guid4$" 
             imageUrl="" solutionId="00000000-0000-0000-0000-000000000000" title="Site Column Feature1" version=""
             deploymentPath="$SharePoint.Project.FileNameWithoutExtension$_$SharePoint.Feature.FileNameWithoutExtension$"
             xmlns="https://schemas.microsoft.com/VisualStudio/2008/SharePointTools/FeatureModel">
      <projectItems>
        <projectItemReference itemId="$guid2$" />
      </projectItems>
    </feature>
    

    Nové XML provede následující změny v souboru:

    • Změní hodnoty Id a featureId atributy feature element $guid4$.

    • Změní hodnoty itemId atribut projectItemReference element $guid2$.

    Další informace o souborech .feature viz Vytvoření položky šablony a šablony aplikace Project pro položky služby SharePoint projektu.

  2. Soubor uložte a zavřete.

Upravit soubor Package.package

  1. V projektu SiteColumnProjectTemplate nahradíte obsah souboru Package.package s následujícím XML.

    <?xml version="1.0" encoding="utf-8"?>
    <package xmlns:dm0="https://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" dslVersion="1.0.0.0" 
             Id="$guid3$" solutionId="$guid3$" resetWebServer="false" name="$safeprojectname$" 
             xmlns="https://schemas.microsoft.com/VisualStudio/2008/SharePointTools/PackageModel">
      <features>
        <featureReference itemId="$guid4$" />
      </features>
    </package>
    

    Nové XML provede následující změny v souboru:

    • Změní hodnoty Id a solutionId atributy package element $guid3$.

    • Změní hodnoty itemId atribut featureReference element $guid4$.

    Další informace o soubory .package, viz Vytvoření položky šablony a šablony aplikace Project pro položky služby SharePoint projektu.

  2. Soubor uložte a zavřete.

Upravit soubor SiteColumnProjectTemplate.vstemplate

  1. V projektu SiteColumnProjectTemplate nahradíte obsah souboru SiteColumnProjectTemplate.vstemplate jedné z následujících částí XML.

    • Pokud vytváříte šablonu projektu Visual C#, použijte následující kód XML.
    <?xml version="1.0" encoding="utf-8"?>
    <VSTemplate Version="3.0.0" xmlns="https://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
      <TemplateData>
        <Name>Site Column</Name>
        <Description>Creates a new site column in SharePoint</Description>
        <FrameworkVersion>3.5</FrameworkVersion>
        <ProjectType>CSharp</ProjectType>
        <CreateNewFolder>true</CreateNewFolder>
        <CreateInPlace>true</CreateInPlace>
        <ProvideDefaultName>true</ProvideDefaultName>
        <DefaultName>SiteColumn</DefaultName>
        <LocationField>Enabled</LocationField>
        <EnableLocationBrowseButton>true</EnableLocationBrowseButton>
        <PromptForSaveOnCreation>true</PromptForSaveOnCreation>
        <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
        <Icon>SiteColumnProjectTemplate.ico</Icon>
        <SortOrder>1000</SortOrder>
      </TemplateData>
      <TemplateContent>
        <Project TargetFileName="SharePointProject1.csproj" File="ProjectTemplate.csproj" ReplaceParameters="true">
          <ProjectItem ReplaceParameters="true" TargetFileName="Properties\AssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>
          <ProjectItem ReplaceParameters="true" TargetFileName="Features\Feature1\Feature1.feature">Feature1.feature</ProjectItem>
          <ProjectItem ReplaceParameters="true" TargetFileName="Features\Feature1\Feature1.Template.xml">Feature1.template.xml</ProjectItem>
          <ProjectItem ReplaceParameters="true" TargetFileName="Package\Package.package">Package.package</ProjectItem>
          <ProjectItem ReplaceParameters="true" TargetFileName="Package\Package.Template.xml">Package.Template.xml</ProjectItem>
          <ProjectItem ReplaceParameters="true" TargetFileName="Field1\SharePointProjectItem.spdata">SharePointProjectItem.spdata</ProjectItem>
          <ProjectItem ReplaceParameters="true" TargetFileName="Field1\Elements.xml" OpenInEditor="true">Elements.xml</ProjectItem>
          <ProjectItem ReplaceParameters="false" TargetFileName="key.snk">key.snk</ProjectItem>
        </Project>
      </TemplateContent>
    </VSTemplate>
    
    • Pokud vytváříte šablonu projektu Visual Basic, použijte následující kód XML.
    <?xml version="1.0" encoding="utf-8"?>
    <VSTemplate Version="3.0.0" xmlns="https://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
      <TemplateData>
        <Name>Site Column</Name>
        <Description>Creates a new site column in SharePoint</Description>
        <FrameworkVersion>3.5</FrameworkVersion>
        <ProjectType>VisualBasic</ProjectType>
        <CreateNewFolder>true</CreateNewFolder>
        <CreateInPlace>true</CreateInPlace>
        <ProvideDefaultName>true</ProvideDefaultName>
        <DefaultName>SiteColumn</DefaultName>
        <LocationField>Enabled</LocationField>
        <EnableLocationBrowseButton>true</EnableLocationBrowseButton>
        <PromptForSaveOnCreation>true</PromptForSaveOnCreation>
        <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
        <Icon>SiteColumnProjectTemplate.ico</Icon>
        <SortOrder>1000</SortOrder>
      </TemplateData>
      <TemplateContent>
        <Project TargetFileName="SharePointProject1.vbproj" File="ProjectTemplate.vbproj" ReplaceParameters="true">
          <ProjectItem ReplaceParameters="true" TargetFileName="My Project\AssemblyInfo.vb">AssemblyInfo.vb</ProjectItem>
          <ProjectItem ReplaceParameters="true" TargetFileName="Features\Feature1\Feature1.feature">Feature1.feature</ProjectItem>
          <ProjectItem ReplaceParameters="true" TargetFileName="Features\Feature1\Feature1.Template.xml">Feature1.template.xml</ProjectItem>
          <ProjectItem ReplaceParameters="true" TargetFileName="Package\Package.package">Package.package</ProjectItem>
          <ProjectItem ReplaceParameters="true" TargetFileName="Package\Package.Template.xml">Package.Template.xml</ProjectItem>
          <ProjectItem ReplaceParameters="true" TargetFileName="Field1\SharePointProjectItem.spdata">SharePointProjectItem.spdata</ProjectItem>
          <ProjectItem ReplaceParameters="true" TargetFileName="Field1\Elements.xml" OpenInEditor="true">Elements.xml</ProjectItem>
          <ProjectItem ReplaceParameters="false" TargetFileName="key.snk">key.snk</ProjectItem>
        </Project>
      </TemplateContent>
    </VSTemplate>
    

    Nové XML provede následující změny v souboru:

    • Nastaví Name prvku na hodnotu Sloupec webu.(Tento název se zobrazí v Nový projekt dialogové okno).

    • Přidá ProjectItem prvky pro každou filethat's zahrnuty v každé instanci projektu.

    • Používá obor názvů "https://schemas.microsoft.com/developer/vstemplate/2005".Jiné soubory projektu v tomto řešení pomocí oboru názvů "https://schemas.microsoft.com/developer/msbuild/2003".Proto budou generovány zprávy upozornění schématu XML, ale ignorovat je v tomto návodu.

    Další informace o obsahu soubory .vstemplate naleznete Reference schématu šablony Visual Studio.

  2. Soubor uložte a zavřete.

Upravit soubor ProjectTemplate.csproj nebo ProjectTemplate.vbproj

  1. V projektu SiteColumnProjectTemplate nahraďte obsah souboru ProjectTemplate.csproj nebo souboru ProjectTemplate.vbproj jedné z následujících částí XML.

    • Pokud vytváříte šablonu projektu Visual C#, použijte následující kód XML.
    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
        <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
        <SchemaVersion>2.0</SchemaVersion>
        <ProjectGuid>{$guid1$}</ProjectGuid>
        <OutputType>Library</OutputType>
        <AppDesignerFolder>Properties</AppDesignerFolder>
        <RootNamespace>$safeprojectname$</RootNamespace>
        <AssemblyName>$safeprojectname$</AssemblyName>
        <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
        <FileAlignment>512</FileAlignment>
        <ProjectTypeGuids>{BB1F664B-9266-4fd6-B973-E1E44974B511};{14822709-B5A1-4724-98CA-57A101D1B079};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
      </PropertyGroup>
      <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
        <DebugSymbols>true</DebugSymbols>
        <DebugType>full</DebugType>
        <Optimize>false</Optimize>
        <OutputPath>bin\Debug\</OutputPath>
        <DefineConstants>DEBUG;TRACE</DefineConstants>
        <ErrorReport>prompt</ErrorReport>
        <WarningLevel>4</WarningLevel>
        <UseVSHostingProcess>false</UseVSHostingProcess>
      </PropertyGroup>
      <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
        <DebugType>pdbonly</DebugType>
        <Optimize>true</Optimize>
        <OutputPath>bin\Release\</OutputPath>
        <DefineConstants>TRACE</DefineConstants>
        <ErrorReport>prompt</ErrorReport>
        <WarningLevel>4</WarningLevel>
      </PropertyGroup>
      <PropertyGroup>
        <SignAssembly>true</SignAssembly>
        <AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
      </PropertyGroup>
      <ItemGroup>
        <Reference Include="System" />
        <Reference Include="System.Core" />
        <Reference Include="System.Data" />
        <Reference Include="System.Data.DataSetExtensions" />
        <Reference Include="System.Web" />
        <Reference Include="System.Xml" />
        <Reference Include="System.Xml.Linq" />
        <Reference Include="Microsoft.SharePoint" />
        <Reference Include="Microsoft.SharePoint.Security" />
      </ItemGroup>
      <ItemGroup>
        <Compile Include="Properties\AssemblyInfo.cs" />
      </ItemGroup>
      <ItemGroup>
        <None Include="Field1\SharePointProjectItem.spdata">
          <SharePointProjectItemId>{$guid2$}</SharePointProjectItemId>
        </None>
        <None Include="Field1\Elements.xml" />
      </ItemGroup>
      <ItemGroup>
        <None Include="key.snk" />
        <None Include="Package\Package.package">
          <PackageId>{$guid3$}</PackageId>
        </None>
        <None Include="Package\Package.Template.xml">
          <DependentUpon>Package.package</DependentUpon>
        </None>
        <None Include="Features\Feature1\Feature1.feature">
          <FeatureId>{$guid4$}</FeatureId>
        </None>
        <None Include="Features\Feature1\Feature1.Template.xml">
          <DependentUpon>Feature1.feature</DependentUpon>
        </None>
      </ItemGroup>
      <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
      <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\SharePointTools\Microsoft.VisualStudio.SharePoint.targets" />
    </Project>
    
    1. Pokud vytváříte šablonu projektu Visual Basic, použijte následující kód XML.
    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
        <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
        <ProductVersion>
        </ProductVersion>
        <SchemaVersion>
        </SchemaVersion>
        <ProjectGuid>{$guid1$}</ProjectGuid>
        <OutputType>Library</OutputType>
        <RootNamespace>$safeprojectname$</RootNamespace>
        <AssemblyName>$safeprojectname$</AssemblyName>
        <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
        <FileAlignment>512</FileAlignment>
        <ProjectTypeGuids>{BB1F664B-9266-4fd6-B973-E1E44974B511};{D59BE175-2ED0-4C54-BE3D-CDAA9F3214C8};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
        <OptionExplicit>On</OptionExplicit>
        <OptionCompare>Binary</OptionCompare>
        <OptionStrict>Off</OptionStrict>
        <OptionInfer>On</OptionInfer>
      </PropertyGroup>
      <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
        <DebugSymbols>true</DebugSymbols>
        <DebugType>full</DebugType>
        <DefineDebug>true</DefineDebug>
        <DefineTrace>true</DefineTrace>
        <OutputPath>bin\Debug\</OutputPath>
        <WarningLevel>4</WarningLevel>
        <UseVSHostingProcess>false</UseVSHostingProcess>
      </PropertyGroup>
      <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
        <DebugType>pdbonly</DebugType>
        <DefineDebug>false</DefineDebug>
        <DefineTrace>true</DefineTrace>
        <Optimize>true</Optimize>
        <OutputPath>bin\Release\</OutputPath>
        <UseVSHostingProcess>false</UseVSHostingProcess>
      </PropertyGroup>
      <PropertyGroup>
        <SignAssembly>true</SignAssembly>
        <AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
      </PropertyGroup>
      <ItemGroup>
        <Reference Include="System" />
        <Reference Include="System.Core" />
        <Reference Include="System.Data" />
        <Reference Include="System.Data.DataSetExtensions" />
        <Reference Include="System.Xml" />
        <Reference Include="System.Xml.Linq" />
        <Reference Include="Microsoft.SharePoint" />
        <Reference Include="Microsoft.SharePoint.Security" />
      </ItemGroup>
      <ItemGroup>
        <Import Include="Microsoft.VisualBasic" />
        <Import Include="System" />
        <Import Include="System.Collections" />
        <Import Include="System.Collections.Generic" />
        <Import Include="System.Data" />
        <Import Include="System.Diagnostics" />
        <Import Include="System.Linq" />
        <Import Include="System.Xml.Linq" />
        <Import Include="Microsoft.SharePoint" />
        <Import Include="Microsoft.SharePoint.Security" />
      </ItemGroup>
      <ItemGroup>
        <Compile Include="My Project\AssemblyInfo.vb" />
      </ItemGroup>
      <ItemGroup>
        <AppDesigner Include="My Project\" />
      </ItemGroup>
      <ItemGroup>
        <None Include="Features\Feature1\Feature1.feature">
          <FeatureId>{$guid4$}</FeatureId>
        </None>
        <None Include="Field1\SharePointProjectItem.spdata">
          <SharePointProjectItemId>{$guid2$}</SharePointProjectItemId>
        </None>
        <None Include="key.snk" />
        <None Include="Package\Package.package">
          <PackageId>{$guid3$}</PackageId>
        </None>
        <None Include="Package\Package.Template.xml">
          <DependentUpon>Package.package</DependentUpon>
        </None>
      </ItemGroup>
      <ItemGroup>
        <None Include="Features\Feature1\Feature1.Template.xml">
          <DependentUpon>Feature1.feature</DependentUpon>
        </None>
        <None Include="Field1\Elements.xml" />
      </ItemGroup>
      <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
      <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\SharePointTools\Microsoft.VisualStudio.SharePoint.targets" />
    </Project>
    

    Nové XML provede následující změny v souboru:

    • Používá TargetFrameworkVersion prvku určit 3,5 rozhraní.NET Framework, nikoli 4.5.

    • Přidá SignAssembly a AssemblyOriginatorKeyFile prvky podepsat výstup projektu.

    • Přidá Reference prvky pro sestavení odkazuje pomocí projektů SharePoint.

    • Prvky pro každý soubor výchozí přidá do projektu, například Elements.xml a SharePointProjectItem.spdata.

  2. Soubor uložte a zavřete.

Vytvoření balíčku VSIX k nasazení šablony projektu

Chcete-li nasadit rozšíření, použijte VSIX projekt ve SiteColumnProjectItem řešení k vytvoření VSIX balíčku.Nejprve nakonfigurujte VSIX balíček úpravou souboru source.extension.vsixmanifest, který je součástí projektu VSIX.Potom vytvořte VSIX balíček vytvořením řešení.

Chcete-li konfigurovat a vytvořit balíček VSIX

  1. V Průzkumníkuv SiteColumnProjectItem projektu, otevřete soubor source.extension.vsixmanifest v editoru manifestu.

    Soubor source.extension.vsixmanifest je základem pro soubor extension.vsixmanifest, který vyžadují všechny balíčky VSIX.Další informace o tomto souboru získáte v tématu VSIX rozšíření schématu Reference.

  2. V Název produktu zadejte Sloupec webu.

  3. V Autor zadejte Contoso.

  4. V Popis zadejte projektu služby SharePoint pro vytváření sloupců webu.

  5. Zvolte majetku kartu a pak zvolte Nový tlačítko.

    Přidat nový majetek dialogové okno.

  6. V typu seznam, zvolte Microsoft.VisualStudio.ProjectTemplate.

    [!POZNÁMKA]

    Tato hodnota odpovídá prvku ProjectTemplate v souboru extension.vsixmanifest file.Tento prvek identifikuje podsložku v balíčku VSIX, který obsahuje šablonu projektu.Další informace naleznete v tématu ProjectTemplate Element (VSX Schema).

  7. V zdroje seznam, zvolte projektu v aktuálním řešení.

  8. V projektu seznam a zvolte SiteColumnProjectTemplatea pak zvolte OK tlačítko.

  9. Zvolte Nový znovu na tlačítko.

    Přidat nový majetek dialogové okno.

  10. V typu seznam, zvolte Microsoft.VisualStudio.MefComponent.

    [!POZNÁMKA]

    Tato hodnota odpovídá prvku MefComponent v souboru extension.vsixmanifest file.Tento prvek určuje název sestavení rozšíření v balíčku VSIX.Další informace naleznete v tématu MEFComponent Element.

  11. V zdroje seznam, zvolte projektu v aktuálním řešení.

  12. V projektu seznam, zvolte ProjectItemTypeDefinitiona pak zvolte OK tlačítko.

  13. Na panelu nabídek zvolte sestavení, Sestavit řešenía ujistěte se, že projekt zkompiluje bez chyb.

Testování šablony projektu

Nyní jste připraveni k testování šablony projektu.Nejprve spusťte ladění řešení SiteColumnProjectItem v experimentální instanci Visual Studio.Potom testujte Sloupec webu projektu v experimentální instanci Visual Studio.Nakonec sestavte a spusťte projekt SharePoint, ověřte, zda sloupec webu funguje podle očekávání.

Spuštění ladění řešení

  1. Restartujte aplikaci Visual Studio s pověřeními pro správu a otevřete řešení SiteColumnProjectItem.

  2. V souboru SiteColumnProjectItemTypeProvider kódu přidejte zarážku do prvního řádku kódu v InitializeType metodou a pak zvolte F5 klíč spuštění ladění.

    Visual Studio nainstaluje rozšíření do %UserProfile%\AppData\Local\Microsoft\VisualStudio\10.0Exp\Extensions\Contoso\Site Column\1.0 a spustí experimentální instanci aplikace Visual Studio.Položku projektu budete testovat v této instanci aplikace Visual Studio.

Testování projektu v aplikaci Visual Studio

  1. V experimentální instanci Visual Studio v řádku nabídek zvolte soubor, Nový, projektu.

  2. Rozbalte Visual C# nebo jazyka Visual Basic rozbalte uzel (v závislosti na jazyk, který podporuje šablony projektu), SharePoint uzel a pak zvolte 2010 uzlu.

  3. V seznamu šablon projektu, zvolte Sloupec webu šablony.

  4. V název zadejte SiteColumnTest a pak zvolte OK tlačítko.

    V Průzkumníku, nový projekt, zobrazí se položky projektu s názvem pole1.

  5. Ověřte, že se kód ve druhé instanci aplikace Visual Studio zastaví na zarážce, kterou jste nastavili výše v InitializeType metodou a pak zvolte F5 klíč pokračovat v ladění projektu.

  6. V Průzkumníku, zvolte pole1 uzel a pak zvolte F4 klíč.

    Otevře se okno Vlastnosti.

  7. V seznamu Vlastnosti ověřte, zda vlastnost Příklad vlastnosti se zobrazí.

Testování sloupec webu služby SharePoint

  1. V Průzkumníku, zvolte SiteColumnTest uzlu.

  2. V Vlastnosti okno do textového pole vedle Adresa URL webu vlastnost, zadejte https://localhost.

    Tento krok určuje místního webu služby SharePoint na vývojovém počítači, který chcete použít pro ladění.

    [!POZNÁMKA]

    Adresa URL webu vlastnost je ve výchozím nastavení prázdný, protože šablona projektu sloupec webu neposkytuje pro sběr tuto hodnotu při vytvoření projektu průvodce.Přidat Průvodce dotazem vývojář tuto hodnotu a pak nastaví tuto vlastnost v novém projektu, naleznete v Názorný postup: Vytvoření položky projektu sloupec webu pomocí šablony projektu, část 2.

  3. Zvolte F5 klíč.

    Sloupec webu je zabaleny a nasazeny na web služby SharePoint, který je určen v Adresa URL webu vlastností projektu.Webový prohlížeč otevře výchozí stránku tohoto webu.

    [!POZNÁMKA]

    Pokud Ladění skriptů zakázáno dialogovém okně zvolte Ano tlačítko Pokračovat v ladění projektu.

  4. Na Akce webu nabídce zvolte Nastavení webu.

  5. Na Nastavení webu části stránky Galerie seznam, zvolte sloupce webu odkaz.

  6. V seznamu sloupce webu, zkontrolujte, zda Vlastní sloupce skupina obsahuje sloupec s názvem SiteColumnTest.

  7. Zavřete webový prohlížeč.

Čištění vývojového počítače

Po dokončení testování projektu odeberte šablonu projektu v experimentální instanci Visual Studio.

Chcete-li vyčistit vývojový počítač

  1. V experimentální instanci Visual Studio v řádku nabídek zvolte Nástroje, aktualizace a rozšíření.

    Aktualizace a rozšíření dialogové okno.

  2. Zvolte v seznamu rozšíření Sloupec webu rozšíření a pak zvolte Odinstalace tlačítko.

  3. V dialogovém okně, které se objeví, zvolte Ano tlačítko potvrďte, že chcete odinstalovat rozšíření.

  4. Zvolte Zavřít tlačítko pro dokonční odinstalace.

  5. Zavřete obě instance programu Visual Studio (experimentální instanci a instanci aplikace Visual Studio, ve kterém je SiteColumnProjectItem řešení otevřené).

Další kroky

Po dokončení tohoto návodu přidáte průvodce do šablony projektu.Když uživatel vytvoří projekt sloupec webu, Průvodce zobrazí výzvu pro adresu URL pro ladění a zda je nové řešení v izolovaném prostoru a Průvodce nakonfiguruje tyto informace nového projektu.Průvodce také shromažďuje informace o sloupci (například základní typ a skupiny sloupců v galerii sloupec seznamu) a přidá tyto informace do souboru Elements.xml v novém projektu.Další informace naleznete v tématu Názorný postup: Vytvoření položky projektu sloupec webu pomocí šablony projektu, část 2.

Viz také

Úkoly

Názorný postup: Vytvoření položky projektu sloupec webu pomocí šablony projektu, část 2

Koncepty

Definování typů položek projektu SharePoint vlastní

Vytvoření položky šablony a šablony aplikace Project pro položky služby SharePoint projektu

Uložení dat v rozšíření systému SharePoint projektu

Přidružení dat vlastní rozšíření nástroje služby SharePoint