Podrobné pokyny: Vytvoření položky projektu sloupec webu pomocí šablony projektu, část 1
Projekty SharePoint jsou kontejnery pro jednu nebo více položek projektu SharePoint. Můžete rozšířit systém projektu SharePoint v Visual Studio 2010 vytvořením vlastní typy položek projektu SharePoint a potom přidružení je šablona projektu. V tomto návodu definujete typ položky projektu pro vytvoření sloupce webu a poté vytvoří šablona projektu, která slouží k vytvoření nového projektu, která obsahuje položku projektu sloupec webu.
Tento návod demonstruje následující úkoly:
Vytvoření rozšíření Visual Studio, která definuje nový typ položky projektu 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žky projektu.
Vytváření Visual Studio rozšíření (VSIX) balíčku nasazení šablony projektu a sestavení rozšíření.
Ladění a testování položky projektu.
Toto je samostatný postup. Po dokončení tohoto postupu můžete vylepšit přidáním Průvodce šablonou projektu položku projektu. Další informace naleznete v tématu Podrobné pokyny: Vytvoření položky projektu sloupec webu pomocí šablony projektu, část 2.
Poznámka
Stáhnout vzorek, který obsahuje dokončených projektů, kód a jiné soubory tohoto postupu 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 Requirements for Developing SharePoint Solutions.
The Visual Studio 2010 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ástroje SharePoint v aplikaci Visual Studio.
Znalost následujících pojem je užitečné, ale nejsou vyžadovány dokončit návod:
Sloupce na webu služby SharePoint. Další informace naleznete v sloupce.
Šablony aplikace Project v aplikaci Visual Studio. Další informace naleznete v tématu Úvod k šablonám aplikace 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 nasazení položku projektu sloupec webu a šablona projektu.
Šablona projektu projektu. Tento projekt vytvoří šablona projektu, která slouží k vytvoření nového projektu SharePoint obsahující položky projektu sloupec webu.
Projekt knihovny tříd. Tento projekt, který implementuje rozšíření 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 nástroj Visual Studio.
V nabídce File (Soubor) přejděte na příkaz New (Nový) a klepněte na příkaz Project (Projekt).
V poli se seznamem v horní části dialogového okna Nový Projekt zkontrolujte, zda je vybráno .NET Framework 4.
V dialogovém okně Nový projekt rozbalte uzly Visual C# nebo Visual Basic a potom klikněte na uzel Rozšiřitelnost.
Poznámka
Uzel Rozšiřitelnost je k dispozici pouze v případě, že nainstalujete Visual Studio 2010 SDK. Další informace naleznete v části požadavky dříve v tomto tématu.
Klikněte na šablonu Projekt VSIX.
V název zadejte SiteColumnProjectItem.
Klikněte na tlačítko OK.
Visual StudioPřidá SiteColumnProjectItem projektu na Aplikaci Solution Explorer.
Vytvořit projekt šablony projektu
V Aplikaci Solution Explorer, klepněte pravým tlačítkem na uzel řešení, přejděte na Přidata klepněte na tlačítko 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 poli se seznamem nahoře Přidat nový projekt dialogovém okně pole, ujistěte se, že .NET Framework 4 je zaškrtnuto.
V Přidat nový projekt dialogové okno pole, rozbalte položku Visual C# nebo Visual Basic uzly a klepněte rozšíření uzlu.
Vyberte v seznamu šablon projektů Šablona projektu C# nebo Šablona projektu Visual Basic.
V název zadejte SiteColumnProjectTemplate.
Klikněte na tlačítko OK.
Visual StudioPřidá SiteColumnProjectTemplate projektu řešení.
Odstraňte soubor kódu Class1 z projektu.
Pokud jste vytvořili projekt aplikace Visual Basic, také odstraní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 Aplikaci Solution Explorer, klepněte pravým tlačítkem na uzel řešení, přejděte na Přidata klepněte na tlačítko Nový projekt.
V poli se seznamem nahoře Přidat nový projekt dialogovém okně pole, ujistěte se, že .NET Framework 4 je zaškrtnuto.
V Přidat nový projekt dialogovém okně pole, rozbalte položku Visual C# nebo Visual Basic uzly a klepněte na Windows.
Zvolte šablonu projektu Knihovna tříd.
V název zadejte ProjectItemTypeDefinition.
Klikněte na tlačítko OK.
Visual StudioPřidá ProjectItemTypeDefinition projektu řešení a otevře soubor výchozí kód Class1.
Odstraňte soubor kódu Class1 z projektu.
Konfigurace projektu rozšíření
Přidáte kód soubory a odkazy na sestavení konfigurace rozšíření projektu.
Chcete-li konfigurovat projekt
V projektu ProjectItemTypeDefinition přidat nový kód souboru s názvem SiteColumnProjectItemTypeProvider.
V nabídce Projekt klepněte na příkaz Přidat odkaz.
Na záložce .NET stiskněte klávesu CTRL a pak klikněte na tlačítko následujících sestavení a potom klikněte na tlačítko OK:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Definování nový typ položky projektu SharePoint
Vytvořit třídu, která implementuje ISharePointProjectItemTypeProvider rozhraní definují chování typ nové položky projektu. Implementujte toto rozhraní pokaždé, když chcete definovat nový typ položky projektu.
Definovat nový typ položky projektu SharePoint
Otevřete v projektu ProjectItemTypeDefinition SiteColumnProjectItemTypeProvider kód souboru.
Nahradit kód v tomto souboru následující kód a potom soubor uložit.
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
Povolit jiným vývojářům vytvářet SharePoint projekt obsahuje položku projektu sloupec webu vytvořte šablonu projektu. Projekt šablony služby SharePoint obsahuje soubory nutné 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í položek projektu SharePoint položku šablony a šablony aplikace Project.
V tomto postupu vytvořit projekt prázdný SharePoint generovat soubory, které jsou specifické pro SharePoint projekty a přidat tyto soubory do projektu SiteColumnProjectTemplate tak, že budou zahrnuty v šabloně, která je generována z tohoto projektu. Nakonfigurovat také určit, kde šablona projektu se zobrazí v souboru projektu SiteColumnProjectTemplate Přidat nový projekt dialogové okno.
Vytvořit soubory pro šablonu projektu
Spustit druhou instanci Visual Studio s oprávněními správce.
Vytvořit nový prázdný projekt SharePoint s názvem BaseSharePointProject. Vyberte nasadit jako řešení farmy volbu v SharePoint Průvodce přizpůsobením.
Prázdný Element položku přidáte do projektu. Název položky pole1.
Projekt uložte a zavřete druhou Visual Studio instance.
V instanci Visual Studio otevřené, pravým SiteColumnProjectItem roztoku, který má SiteColumnProjectTemplate projektu v uzlu Aplikaci Solution Explorer.
Na Přidat nabídky, klepněte na tlačítko Existující položku.
V Přidat existující položku dialogovém okně klepněte na rozevírací seznam přípon souborů a vyberte všechny soubory (*. *).
Přejděte do adresáře, který obsahuje projekt BaseSharePointProject. V této složce vyberte key.snk a klepněte na Přidat.
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. Jak rozšířit tento vzorek vytvořit nový soubor key.snk pro každou instanci projektu, viz Podrobné pokyny: Vytvoření položky projektu sloupec 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; znovu vytvořit podsložky pole1, funkce nebo balíčku v projektu. Další informace o těchto souborů viz Vytváření položek projektu SharePoint položku šablony a šablony aplikace Project.
Konfigurace, jak zjistit vývojářům šablony projektu v dialogovém okně Přidat nový projekt
V Aplikaci Solution Explorer, klepněte pravým tlačítkem myši SiteColumnProjectTemplate uzlu projektu a na Uvolnění projektu. Výzvy k uložení změn souborů, klepněte na tlačítko Ano.
Klepněte pravým tlačítkem myši SiteColumnProjectTemplate uzel znovu a klepněte na Upravit SiteColumnProjectTemplate.csproj nebo Upravit SiteColumnProjectTemplate.vbproj.
Najděte následující prvek VSTemplate v souboru projektu.
<VSTemplate Include="SiteColumnProjectTemplate.vstemplate">
Nahraďte tento prvek VSTemplate s následujícím XML.
<VSTemplate Include="SiteColumnProjectTemplate.vstemplate"> <OutputSubPath>SharePoint\SharePoint14</OutputSubPath> </VSTemplate>
OutputSubPath Prvku určuje další složky v cestě, pod kterým je vytvořena šablona projektu při vytváření projektu. Složky zadané zde zajistit, že šablona projektu bude k dispozici pouze pokud na zákazníky 2010 uzlu SharePoint uzlu Přidat nový projekt dialogové okno.
Soubor uložte a zavřete.
V Aplikaci Solution Explorer, klepněte pravým tlačítkem myši SiteColumnProjectTemplate projektu a klepněte na tlačítko Reload Project.
Úpravy souborů šablony projektu
Úpravy v projektu SiteColumnProjectTemplate 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
Nahraditelné parametry v následujících postupech přidáte do některé z těchto souborů. Nahraditelný parametr je token, který začíná a končí znakem dolaru ($). Po použití této šablony projektu vytvořit nový projekt, Visual Studio automaticky nahradí tyto parametry v novém projektu s konkrétními hodnotami. Další informace naleznete v tématu Replaceable Parameters.
Upravte soubor AssemblyInfo.cs nebo AssemblyInfo.vb
V projektu SiteColumnProjectTemplate, poklepejte na soubor AssemblyInfo.cs nebo AssemblyInfo.vb v Aplikaci Solution Explorer.
Na začátek souboru přidáte následující prohlášení.
Imports System.Security
using System.Security;
Při Uzavřených apletů řešení SharePoint projektu je nastavena na True, přidá aplikace Visual Studio System.Security.AllowPartiallyTrustedCallersAttribute na soubor AssemblyInfo kód. Však nelze importovat soubor AssemblyInfo kódu šablony projektu System.Security oboru názvů jako výchozí. Musíte přidat using nebo Imports kompilace prohlášení zabránit chybám.
Soubor uložte a zavřete.
Upravte soubor Elements.xml
V projektu SiteColumnProjectTemplate, poklepejte na soubor Elements.xml v Aplikaci Solution Explorer.
Nahradíte obsah souboru následující kód 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>
Přidá nový soubor XML Field prvek, který definuje název sloupce webu, jeho základní typ a skupiny do seznamu sloupec webu v galerii. Další informace o obsahu tohoto souboru naleznete Pole definice schématu.
Soubor uložte a zavřete.
Upravte soubor SharePointProjectItem.spdata
V projektu SiteColumnProjectTemplate, poklepejte na soubor SharePointProjectItem.spdata v Aplikaci Solution Explorer.
Nahradíte obsah souboru následující kód 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 souboru provede následující změny:
Změní Type atributu ProjectItem prvek stejný řetězec, který je předán SharePointProjectItemTypeAttribute v definici položky projektu ( SiteColumnProjectItemTypeProvider třídy vytvořené dříve v tomto návodu).
Odebere SupportedTrustLevels a SupportedDeploymentScopes z atributů 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í schéma SharePoint položky.
Soubor uložte a zavřete.
Upravte soubor Feature1.feature
V projektu SiteColumnProjectTemplate, poklepejte na soubor Feature1.feature v Aplikaci Solution Explorer.
Nahradíte obsah souboru následující kód 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 souboru provede následující změny:
Změní hodnoty Id a featureId atributy feature prvku $guid4$.
Změní hodnoty itemId atributu projectItemReference prvku $guid2$.
Další informace o souborech .feature viz Vytváření položek projektu SharePoint položku šablony a šablony aplikace Project.
Soubor uložte a zavřete.
Upravte soubor Package.package
V projektu SiteColumnProjectTemplate, poklepejte na soubor Package.package v Aplikaci Solution Explorer.
Nahradíte obsah souboru následující kód 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 souboru provede následující změny:
Změní hodnoty Id a solutionId atributy package prvku $guid3$.
Změní hodnoty itemId atributu featureReference prvku $guid4$.
Další informace o souborech .package viz Vytváření položek projektu SharePoint položku šablony a šablony aplikace Project.
Soubor uložte a zavřete.
Upravte soubor SiteColumnProjectTemplate.vstemplate
V projektu SiteColumnProjectTemplate, poklepejte na soubor SiteColumnProjectTemplate.vstemplate v Aplikaci Solution Explorer.
Obsah souboru nahraďte některou 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 jazyka 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 souboru provede následující změny:
Nastaví Name prvku na hodnotu Sloupec webu (název, který se zobrazí v Přidat nový projekt dialogovém okně).
Přidá ProjectItem prvků pro jednotlivé soubory, které jsou zahrnuty v každé instanci projektu.
Další informace o obsahu soubory .vstemplate Visual Studio šablona schéma Odkaz….
Soubor uložte a zavřete.
Upravte soubor ProjectTemplate.csproj nebo ProjectTemplate.vbproj
V projektu SiteColumnProjectTemplate poklepejte na soubor ProjectTemplate.csproj nebo ProjectTemplate.vbproj soubor Aplikaci Solution Explorer.
Obsah souboru nahraďte některou 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 jazyka 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 souboru provede následující změny:
Změní určete prvekTargetFrameworkVersion ..NET Framework 3.5.
Přidá SignAssembly a AssemblyOriginatorKeyFile prvky podepsat výstup projektu.
Přidá nový Reference prvky odkazy na sestavení používaný SharePoint projekty.
Přidá nové prvky pro každou z výchozích souborů v projektu, například Elements.xml a SharePointProjectItem.spdata.
Soubor uložte a zavřete.
Vytvoření balíčku VSIX zavést šablonu projektu
Zavedení rozšíření pomocí VSIX projektu v SiteColumnProjectItem roztok vytvoření balíčku VSIX. 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
V Aplikaci Solution Explorer, poklepejte source.extension.vsixmanifest soubor SiteColumnProjectItem projektu.
Visual Studio otevře soubor v editoru manifestu. Soubor source.extension.vsixmanifest je základem pro soubor extension.vsixmanifest, který je vyžadován pro všechny balíčky VSIX. Další informace o tomto souboru získáte v tématu VSX Schema for Extensions.
V Název produktu zadejte Sloupec webu.
V poli Autor napište Contoso.
V Popis zadejte projektu A SharePoint vytváření sloupců webu.
V oddílu Obsah editoru klikněte na tlačítko Přidání obsahu.
V Přidat obsah dialogové okno, klepněte Vyberte typ obsahu rozevíracího seznamu a potom vyberte Šablona projektu.
Poznámka
Tato hodnota odpovídá ProjectTemplate prvku extension.vsixmanifest. Tento prvek označuje podsložku v VSIX balíček, který obsahuje šablonu projektu. Další informace naleznete v tématu ProjectTemplate Element (VSX Schema).
Pod Vybrat zdroj, klepněte projektu rádiové tlačítko a vyberte SiteColumnProjectTemplate v seznamu vedle něj.
Klikněte na tlačítko OK.
Klepněte Přidat obsah znovu na tlačítko.
V dialogovém okně Přidání obsahu v seznamu Volba typu obsahu zvolte Komponenta MEF.
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 (VSX Schema).
Pod Vybrat zdroj, vyberte projekt rádiové tlačítko a vyberte ProjectItemTypeDefinition v seznamu vedle něj.
Klikněte na tlačítko OK.
V nabídce Build (Sestavit) klepněte na příkaz Build Solution (Sestavit řešení). Přesvědčte se, zda je projekt zkompilován bez chyb.
Testování šablony projektu
Nyní jste připraveni vyzkoušet šablonu projektu. Nejprve spustíte ladění SiteColumnProjectItem roztoku v experimentálních instance aplikace Visual Studio. Potom zkouška Sloupec webu projekt experimentální instance aplikace Visual Studio. Nakonec sestavit a spustit projektu ověřte, zda funguje podle očekávání sloupec webu SharePoint.
Spuštění ladění řešení
Restartujte aplikaci Visual Studio s oprávněními správce a otevřete SiteColumnProjectItem roztoku.
Otevřete soubor SiteColumnProjectItemTypeProvider kód a první řádek kódu přidat bod přerušení InitializeType metody.
Stiskněte F5 pro spuštění ladění.
Visual Studio nainstaluje rozšíření %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 v nabídce Soubor vyberte Nový a potom klikněte na Projekt.
Rozbalte Visual C# nebo Visual Basic (v závislosti na jazyku podporuje šablona projektu), rozbalte položku SharePointa klepněte na tlačítko 2010.
Vyberte v seznamu šablon projektů Sloupec webu.
V název zadejte SiteColumnTest.
Klikněte na tlačítko OK. Nový projekt se objeví v Aplikaci Solution Explorer položky projektu s názvem pole1.
Ověření kódu v jiné instanci aplikace Visual Studio přestává reagovat na zarážky v dříve nastavené InitializeType metody. Stisknutím F5 pokračujte v ladění projektu.
V Aplikaci Solution Explorer, klepněte pole1 uzel a stiskněte klávesu F4. Otevře se okno Vlastnosti.
Ověřte, zda je vlastnost Například vlastnost se zobrazí v seznamu vlastností.
Testování sloupec webu služby SharePoint
V Aplikaci Solution Explorer, klepněte SiteColumnTest uzel.
V Vlastnosti okna, klepněte na textové pole vedle Adresa URL webu vlastnosti a typ https://localhost. Určuje místní web SharePoint rozvoj počítače, který chcete použít pro ladění.
Poznámka
Adresa URL webu vlastnost je prázdná ve výchozím nastavení, protože šablona projektu sloupec webu neposkytuje Průvodce pro sběr tuto hodnotu při vytváření projektu. Informace o přidání průvodce, který vás vývojář tuto hodnotu a pak nastaví tuto vlastnost v novém projektu naleznete Podrobné pokyny: Vytvoření položky projektu sloupec webu pomocí šablony projektu, část 2.
Stiskněte tlačítko F5. Sloupec webu je zabalen a nasadit na web služby SharePoint, určený Adresa URL webu vlastnosti projektu. Webový prohlížeč otevře výchozí stránku tohoto webu.
Poznámka
Pokud se zobrazí dialogové okno Ladění skriptů zakázáno, klikněte na tlačítko Ano pro pokračování v ladění projektu.
V nabídce Akce webu klepněte na příkaz Nastavení webu.
Pod galerií, klepněte na tlačítko sloupců webu.
V seznamu sloupce webu, zkontrolujte, zda je Vlastní sloupce skupinu, která 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 z experimentálních instance aplikace Visual Studio.
Chcete-li vyčistit vývojový počítač
V experimentální instanci Visual Studio v nabídce Nástroje klikněte na tlačítko Správce rozšíření.
Otevře se okno Správce rozšíření.
V seznamu přípon, klepněte na tlačítko Sloupec webua klepněte na tlačítko Odinstalace.
V dialogovém okně, které se objeví, klikněte na tlačítko Ano pro potvrzení, že chcete odinstalovat rozšíření.
Klikněte na Restartovat nyní pro dokonční odinstalace.
Zavřete obě instance (instance experimentální a instance Visual Studio, která má otevřené řešení SiteColumnProjectItem) Visual Studio.
Další kroky
Po dokončení tohoto postupu můžete přidat Průvodce šablonou projektu. Když uživatel vytvoří projekt sloupec webu, průvodce výzvu pro adresu URL webu použít k ladění a zda je nové řešení uzavřených apletů a Průvodce nakonfiguruje nový projekt s těmito informacemi. Průvodce také shromažďuje informace o sloupci (například základní typ a skupiny seznamu sloupec v galerii sloupec webu) a přidá tyto informace do souboru Elements.xml v novém projektu. Další informace naleznete v tématu Podrobné pokyny: Vytvoření položky projektu sloupec webu pomocí šablony projektu, část 2.
Viz také
Další zdroje
Podrobné pokyny: Vytvoření položky projektu sloupec webu pomocí šablony projektu, část 2
Definování vlastní typy položek projektu SharePoint
Vytváření položek projektu SharePoint položku šablony a šablony aplikace Project