Návod: Vytvoření položky projektu sloupce 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 zapojit je šablona 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 položky projektu sloupec webu.
Tento návod demonstruje následující úkoly:
Vytvoření rozšíření aplikace Visual Studio, která definuje nový typ položky projektu SharePoint pro sloupec webu.Typu položky projektu obsahuje jednoduché vlastní vlastnost, která se zobrazí v Vlastnosti okno.
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 můžete vylepšit přidáním Průvodce šablonou projektu položky projektu.Další informace naleznete v tématu Návod: Vytvoření položky projektu sloupce webu pomocí šablony projektu, část 2.
[!POZNÁMKA]
Stáhnete vzorek, který obsahuje dokončených projektů, 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:
Podporované edice systému Microsoft Windows, SharePoint a Visual Studio.Další informace naleznete v tématu Požadavky na vývoj řešení služby SharePoint.
Visual Studio SDK.Tento návod používá šablonu Projekt VSIX v sadě SDK pro vytvoření balíčku VSIX k nasazení položky projektu.Další informace naleznete v tématu Rozšíření nástrojů SharePoint v aplikaci Visual Studio.
Znalost následujících pojem je užitečné, ale nejsou vyžadovány pro dokončení návodu:
Sloupce na webu služby SharePoint.Další informace naleznete v tématu sloupce.
Šablony projektů v aplikaci Visual Studio.Další informace naleznete v tématu Vytváření šablon pro projekty a položky v sadě Visual Studio.
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 sloupec webu a šablony projektu.
Projekt šablony projektu.Tento projekt vytvoří šablonu projektu, který lze použít k vytvoření nového projektu služby SharePoint, který obsahuje položky projektu sloupec webu.
Projekt knihovny tříd.Tento projekt, který implementuje rozšíření aplikace Visual Studio, která definuje chování položky projektu sloupec webu.
Začněte postup vytvořením projektů.
Pro vytvoření projektu VSIX
Spusťte Visual Studio.
Na panelu nabídky vyberte možnosti Soubor, Nový, Projekt.
V horní části Nový projekt dialogové okno pole, ujistěte se, že .NET Framework 4.5 je vybrána v seznamu verze rozhraní.NET Framework.
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 SDK.Další informace naleznete v oddílu požadavky dříve v tomto tématu.
Vyberte v seznamu šablon projektů Projektu VSIX.
V jméno zadejte SiteColumnProjectItema pak zvolte OK tlačítko.
Visual StudioPřidá SiteColumnProjectItem projekt na Průzkumník řešení.
Chcete-li vytvořit projekt šablony projektu
V Průzkumník řešení, 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íObecné – Projekty a řešení – dialogové okno Možnosti.
V horní části Nový projekt dialogové okno pole, ujistěte se, že .NET Framework 4.5 je vybrána v seznamu verze rozhraní.NET Framework.
Rozbalte Visual C# nebo jazyka Visual Basic uzlu a pak zvolte rozšíření uzlu.
Vyberte v seznamu šablon projektů Šablona projektu C# nebo Šablona projektu jazyka Visual Basic šablony.
V jméno zadejte SiteColumnProjectTemplatea pak zvolte OK tlačítko.
Visual StudioPřidá SiteColumnProjectTemplate projekt do řešení.
Odstraňte soubor kódu Class1 z projektu.
Pokud jste vytvořili projekt Visual Basic, také odstraňte 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í
V Průzkumník řešení, otevřete místní nabídku pro uzel řešení, zvolte Přidata pak zvolte Nový projekt.
V horní části Nový projekt dialogové okno pole, ujistěte se, že .NET Framework 4.5 je vybrána v seznamu verze rozhraní.NET Framework.
Rozbalte Visual C# nebo jazyka Visual Basic uzly, zvolte Windows uzlu a pak zvolte Knihovny tříd šablony.
V jméno 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.
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
V projektu ProjectItemTypeDefinition přidat kód soubor s názvem SiteColumnProjectItemTypeProvider.
Na panelu nabídky vyberte možnosti Projekt, Přidat odkaz.
V Reference Manager - ProjectItemTypeDefinition dialogové okno pole, rozbalte položku sestavení uzel, zvolte Framework uzlu a potom zaškrtněte políčko System.ComponentModel.Composition.
Zvolte rozšíření uzel, zaškrtněte políčko vedle sestavení Microsoft.VisualStudio.SharePoint a pak zvolte OK tlačítko.
Definici nového typu položky projektu SharePoint
Vytvořte třídu, která implementuje ISharePointProjectItemTypeProvider pro definování chování typu položky projektu nové rozhraní.Implementujte toto rozhraní pokaždé, když chcete definovat nový typ položky projektu.
K definici nového typu 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, můžete povolit ostatním vývojářům vytvářet projekty SharePoint, které obsahují položky projektu sloupec webu.Šablona projektu služby 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 SharePoint projekty.Další informace naleznete v tématu Vytváření šablon položek a projektů pro položky projektu služby SharePoint.
V tomto postupu vytvoříte prázdný projekt SharePoint, chcete-li generovat soubory, které jsou specifické pro SharePoint projekty.Potom je přidat tyto soubory do projektu SiteColumnProjectTemplate tak, že jsou součástí šablony, která je generována z tohoto projektu.Také nakonfigurovat soubor projektu SiteColumnProjectTemplate určit, kde se zobrazí v šabloně projektu Nový projekt dialogové okno.
Chcete-li vytvořit soubory pro šablonu projektu
Spustit druhou instanci Visual Studio s pověřeními pro správu.
Vytvořit projekt služby SharePoint 2010 s názvem BaseSharePointProject.
Důležité V SharePoint Průvodce přizpůsobením, nevybírejte nasadit jako řešení farmy přepínač.
Do projektu přidat položku prázdný Element s názvem položky pole1.
Uložte projekt a potom zavřete druhou instanci Visual Studio.
V instanci Visual Studio , která má otevřené řešení SiteColumnProjectItem, v Průzkumník řešení, otevřete místní nabídku SiteColumnProjectTemplate uzel projektu, zvolte Přidata pak zvolte Existující položku.
V Přidat existující položku dialogovém Otevřít seznam přípon souborů a zvolte všechny soubory (*. *).
V adresáři, který obsahuje projekt BaseSharePointProject, vyberte key.snk soubor 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, který je vytvořen pomocí šablony.Zjistěte, jak rozšířit tento vzorek k vytvoření různých key.snk soubor pro každou instanci projektu, naleznete v tématu Návod: Vytvoření položky projektu sloupce webu pomocí šablony projektu, část 2.
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; nelze znovu vytvořit podsložky pole1, funkce nebo balíčku v projektu.Další informace o těchto souborech naleznete v tématu Vytváření šablon položek a projektů pro položky projektu služby SharePoint.
Chcete-li nakonfigurovat, jak vývojáři objevit šablony projektu v dialogovém okně Nový projekt
V Průzkumník řešení, otevřete místní nabídku SiteColumnProjectTemplate uzel projektu a poté vyberte Uvolnit projekt.Po výzvě uložte změny souborů zvolte Ano tlačítko.
Otevřít místní nabídky SiteColumnProjectTemplate uzel znovu a pak zvolte Upravit SiteColumnProjectTemplate.csproj nebo Upravit SiteColumnProjectTemplate.vbproj.
Vyhledejte následující v souboru projektu, VSTemplate prvku.
<VSTemplate Include="SiteColumnProjectTemplate.vstemplate">
Tento prvek nahraďte následující kód XML.
<VSTemplate Include="SiteColumnProjectTemplate.vstemplate"> <OutputSubPath>SharePoint\SharePoint14</OutputSubPath> </VSTemplate>
OutputSubPath Prvek určuje další složky v cestě, pod kterým je vytvořena šablona projektu při vytváření 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 uzlu a pak zvolte 2010 uzlu.
Soubor uložte a zavřete.
V Průzkumník řešení, otevřete místní nabídku SiteColumnProjectTemplate projektu a poté vyberte Znovu načíst projekt.
Úpravy souborů šablon projektů
V projektu SiteColumnProjectTemplate upravte soubory pro definování chování šablony projektu:
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 ($).Pokud 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.
Chcete-li upravit soubor AssemblyInfo.cs nebo AssemblyInfo.vb
V projektu SiteColumnProjectTemplate otevřete soubor AssemblyInfo.cs nebo AssemblyInfo.vb a pak až do začátku přidejte následující příkaz:
Imports System.Security
using System.Security;
Když Řešení v izolovaném prostoru projekt služby SharePoint je nastavena na True, Visual Studio přidá AllowPartiallyTrustedCallersAttribute do souboru AssemblyInfo kódu.Však nelze importovat soubor AssemblyInfo kódu v šabloně projektu System.Security oboru názvů jako výchozí.Je nutné přidat toto using nebo Imports prohlášení, aby se zabránilo nějaké chyby.
Soubor uložte a zavřete.
Chcete-li upravit soubor Elements.xml
V projektu SiteColumnProjectTemplate nahraď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 tématu Pole definice schématu.
Soubor uložte a zavřete.
Chcete-li upravit soubor SharePointProjectItem.spdata
V projektu SiteColumnProjectTemplate nahradíte obsah soubor 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 prvku na 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 nasazení oborů SiteColumnProjectItemTypeProvider třídy v projektu ProjectItemTypeDefinition.
Další informace o obsahu .spdata souborů naleznete v tématu Referenční dokumentace schématu položek projektu SharePoint.
Soubor uložte a zavřete.
Chcete-li upravit soubor Feature1.feature
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 prvku $guid4$.
Změní hodnoty itemId atribut projectItemReference prvku $guid2$.
Další informace o souborech .feature, viz Vytváření šablon položek a projektů pro položky projektu služby SharePoint.
Soubor uložte a zavřete.
Chcete-li upravit soubor Package.package
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 prvku $guid3$.
Změní hodnoty itemId atribut featureReference prvku $guid4$.
Další informace o soubory .package, viz Vytváření šablon položek a projektů pro položky projektu služby SharePoint.
Soubor uložte a zavřete.
Chcete-li upravit soubor SiteColumnProjectTemplate.vstemplate
V projektu SiteColumnProjectTemplate nahradíte obsah soubor SiteColumnProjectTemplate.vstemplate pomocí 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:
Sady Name prvku na hodnotu Sloupec webu. (Tento název se zobrazí v Nový projekt dialogové okno).
Přidá ProjectItem prvky pro každý filethat je součástí každé instanci projektu.
Používá obor názvů "https://schemas.microsoft.com/developer/vstemplate/2005".Jiných souborů projektu v tomto řešení pomocí oboru názvů "https://schemas.microsoft.com/developer/msbuild/2003".Proto budou vygenerovány zprávy upozornění XML schématu, ale ignorovat je v tomto návodu.
Další informace o obsahu .vstemplate souborech naleznete v tématu Odkaz na schéma šablon sady Visual Studio.
Soubor uložte a zavřete.
Chcete-li upravit soubor ProjectTemplate.csproj nebo ProjectTemplate.vbproj
V projektu SiteColumnProjectTemplate nahradíte obsah soubor ProjectTemplate.csproj nebo ProjectTemplate.vbproj soubor jeden 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>
- 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 prvek, který chcete určit rozhraní.NET Framework 3.5, nikoli 4.5.
Přidá SignAssembly a AssemblyOriginatorKeyFile prvky podepsat výstup projektu.
Přidá Reference prvky pro sestavení odkazuje pomocí projektů služby SharePoint.
Přidá prvky pro každou výchozí soubor v projektu, jako například Elements.xml a SharePointProjectItem.spdata.
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í.
Konfigurace a vytvoření balíčku VSIX
V Průzkumník řešenív 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.
V Název produktu zadejte Sloupec webu.
V poli Autor napište Contoso.
V Popis zadejte projektu služby SharePoint pro vytváření sloupců webu.
Zvolte majetku a potom klikněte na příkaz nové tlačítko.
Přidat nový majetek dialogové okno.
V typu seznam, zvolte Microsoft.VisualStudio.ProjectTemplate.
[!POZNÁMKA]
Tato hodnota odpovídá prvku ProjectTemplate v souboru extension.vsixmanifest.Tento prvek identifikuje podsložku v VSIX balíček, který obsahuje šablonu projektu.Další informace naleznete v tématu ProjectTemplate Element (VSX Schema).
V seznamu Zdroje zvolte Projekt v aktuálním řešení.
V projektu seznam a zvolte SiteColumnProjectTemplatea pak zvolte OK tlačítko.
Zvolte nové tlačítko znovu.
Přidat nový majetek dialogové okno.
V seznamu Typ zvolte Microsoft.VisualStudio.MefComponent.
[!POZNÁMKA]
Tato hodnota odpovídá prvku MefComponent v souboru extension.vsixmanifest.Tento prvek určuje název sestavení rozšíření v balíčku VSIX.Další informace naleznete v tématu MEFComponent Element.
V seznamu Zdroje zvolte Projekt v aktuálním řešení.
V projektu seznam, zvolte ProjectItemTypeDefinitiona pak zvolte OK tlačítko.
V řádku 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í SiteColumnProjectItem roztoku v experimentální instanci aplikace Visual Studio.Potom testujte Sloupec webu projektu v experimentální instanci aplikace Visual Studio.Nakonec sestavte a spusťte projekt SharePoint, chcete-li ověřit, že sloupce webu pracuje podle očekávání.
Spuštění ladění řešení
Restartujte aplikaci Visual Studio s oprávněními správce a otevřete řešení SiteColumnProjectItem.
V souboru SiteColumnProjectItemTypeProvider kód, přidejte zarážku na první řádek kódu v InitializeType metodou a pak zvolte F5 klávesu ke 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
V experimentální instanci Visual Studio na panelu nabídky zvolte Soubor, Nový, Projekt.
Rozbalte Visual C# nebo jazyka Visual Basic rozbalte uzel (v závislosti na jazyk, který podporuje šablony projektu), SharePoint uzlu a pak zvolte 2010 uzlu.
Vyberte v seznamu šablon projektů Sloupec webu šablony.
V jméno zadejte SiteColumnTest a pak zvolte OK tlačítko.
V Průzkumník řešení, nový projekt, zobrazí se položky projektu s názvem pole1.
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íč pro pokračování v ladění projektu.
V Průzkumník řešení, zvolte pole1 uzlu a pak zvolte F4 klíč.
Otevře se okno Vlastnosti.
V seznamu Vlastnosti ověřte, zda je vlastnost Příklad vlastnosti se objeví.
Chcete-li otestovat sloupec webu služby SharePoint
V Průzkumník řešení, zvolte SiteColumnTest uzlu.
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.Informace o přidání průvodce, který vás vývojáři tuto hodnotu a pak nastaví tuto vlastnost v novém projektu, v Návod: Vytvoření položky projektu sloupce webu pomocí šablony projektu, část 2.
Zvolte klávesu F5.
Sloupec webu je zabaleny a nasazeny na web služby SharePoint, který je uveden 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 se zobrazí dialogové okno, vyberte Ano tlačítko pro pokračování v ladění projektu.
Na Akce webu nabídky, zvolte Nastavení webu.
Na Nastavení webu stránky v oblasti Galerie seznam, zvolte sloupce webu odkaz.
V seznamu sloupce webu, zkontrolujte, zda Vlastní sloupce skupina obsahuje sloupec s názvem SiteColumnTest.
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 aplikace Visual Studio.
Chcete-li vyčistit vývojový počítač
V experimentální instanci Visual Studio na panelu nabídky zvolte Tools, Rozšíření a aktualizace.
Otevře se dialogové okno Aktualizace a rozšíření.
V seznamu přípon, zvolte Sloupec webu rozšíření a pak zvolte odinstalovat tlačítko.
V dialogovém okně, které se objeví, zvolte tlačítko Ano pro potvrzení, že chcete odinstalovat rozšíření.
Zvolte Zavřít tlačítko dokončete odinstalaci.
Zavřete obě instance programu Visual Studio (instance experimentální a instance Visual Studio, ve kterém je otevřen SiteColumnProjectItem roztoku).
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 požádá uživatele na adresu URL serveru použít k ladění a zda je nové řešení v izolovaném prostoru a Průvodce nakonfiguruje nový projekt s těmito informacemi.Průvodce také shromažďuje informace o sloupci (například základní typ a skupinu, ve které chcete-li zobrazit sloupce v galerii sloupců webu) a přidá tyto informace do souboru Elements.xml v novém projektu.Další informace naleznete v tématu Návod: Vytvoření položky projektu sloupce webu pomocí šablony projektu, část 2.
Viz také
Úkoly
Návod: Vytvoření položky projektu sloupce webu pomocí šablony projektu, část 2
Koncepty
Definování vlastních typů položek projektu služby SharePoint
Vytváření šablon položek a projektů pro položky projektu služby SharePoint
Uložení dat do rozšíření systému projektu služby SharePoint
Přidružení vlastních dat k rozšíření nástrojů služby SharePoint