Instruktaż: Tworzenie elementu projektu kolumny witryny z szablonu projektu, część 1
Projekty programu SharePoint są kontenerami dla jednego lub więcej elementów projektu programu SharePoint.Można rozszerzyć system projektu programu SharePoint w programie Visual Studio, tworzenie własnych typów elementów projektu programu SharePoint, a następnie kojarząc je z szablonem projektu.W tym instruktażu określi typ elementu projektu do tworzenia kolumny witryny, a następnie utworzy szablon projektu, który może służyć do tworzenia nowego projektu, który zawiera element projektu kolumny witryny.
W tym instruktażu przedstawiono następujące zadania:
Tworzenie rozszerzeń programu Visual Studio, które definiuje nowy typ elementu projektu programu SharePoint dla kolumny witryny.Typ elementu projektu zawiera proste właściwości niestandardowej, która pojawia się w Właściwości okna.
Tworzenie Visual Studio szablon projektu dla elementu projektu.
Budowa Visual Studio pakiet rozszerzenia (VSIX) do wdrażania szablonu projektu i montażu rozszerzenie.
Debugowanie i testowania element projektu.
Jest to autonomiczny instruktażu.Po zakończeniu pracy w tym instruktażu, element projektu można zwiększyć przez dodanie kreatora do szablonu projektu.Aby uzyskać więcej informacji, zobacz Instruktaż: Tworzenie elementu projektu kolumny witryny z szablonu projektu, część 2.
[!UWAGA]
Pobrać próbkę zawierającą zakończonych projektów, kod i inne pliki w tym instruktażu z następującej lokalizacji: https://go.microsoft.com/fwlink/?LinkId=191369.
Wymagania wstępne
Potrzebne są następujące składniki na komputerze deweloperskim do przeprowadzenia tego instruktażu:
Obsługiwane wersje systemu Microsoft Windows SharePoint i Visual Studio.Aby uzyskać więcej informacji, zobacz Wymagania dotyczące rozwiązań programu SharePoint.
The Visual Studio SDK.W tym instruktażu wykorzystano Projektu VSIX szablon w zestawie SDK, aby utworzyć pakiet VSIX wdrożyć element projektu.Aby uzyskać więcej informacji, zobacz Rozszerzanie narzędzi programu SharePoint w programie Visual Studio.
Znajomość następujące pojęcia jest przydatne, ale nie jest to wymagane, aby ukończyć Instruktaż:
Kolumny witryny programu SharePoint.Aby uzyskać więcej informacji, zobacz kolumny.
Szablony projektu w programie Visual Studio.Aby uzyskać więcej informacji, zobacz Wprowadzenie do programu Visual Studio, szablony.
Tworzenie projektów
Do przeprowadzenia tego instruktażu, należy utworzyć trzy projekty:
Projekt VSIX.Ten projekt tworzy pakiet VSIX wdrożyć szablon projektu i element projektu kolumny witryny.
Projekt szablonu projektu.Ten projekt tworzy szablon projektu, który może służyć do tworzenia nowego projektu programu SharePoint zawierającą element projektu kolumny witryny.
Projektu biblioteki klas.Ten projekt, który implementuje rozszerzenie programu Visual Studio, która definiuje zachowanie element projektu kolumny witryny.
Instruktaż należy rozpocząć od utworzenia projektów.
Aby utworzyć projekt VSIX
Start Visual Studio.
Na pasku menu wybierz pliku, Nowa, Projekt.
W górnej części Nowy projekt okno dialogowe pole, upewnij się, że 4.5.NET Framework jest wybrany na liście wersje.NET Framework.
Rozwiń języka Visual Basic lub Visual C# węzły, a następnie wybierz polecenie rozszerzalności węzła.
[!UWAGA]
Rozszerzalności węzeł jest dostępne tylko po zainstalowaniu programu Visual Studio SDK 2012.Aby uzyskać więcej informacji zobacz sekcję Warunki wstępne, wcześniej w tym temacie.
Na liście szablonów projektu, wybierz opcję VSIX projektu.
W Nazwa wprowadź SiteColumnProjectItem, a następnie wybierz polecenie OK przycisk.
Visual Studiododaje SiteColumnProjectItem projekt Solution Explorer.
Aby utworzyć projekt szablonu projektu
W Solution Explorer, otwórz menu skrótów dla węzła rozwiązanie, wybierz Dodaj, a następnie wybierz polecenie Nowy projekt.
[!UWAGA]
W projektach programu Visual Basic, węzeł rozwiązanie pojawia się w Solution Explorer tylko wtedy, gdy Zawsze pokazuj rozwiązanie pole wyboru jest zaznaczone w General, Projects and Solutions, Options Dialog Box.
W górnej części Nowy projekt okno dialogowe pole, upewnij się, że 4.5.NET Framework jest wybrany na liście wersje.NET Framework.
Rozwiń węzeł Visual C# lub języka Visual Basic węzła, a następnie wybierz polecenie rozszerzalności węzła.
Na liście szablonów projektu, wybierz opcję Szablon projektu C# lub Szablon projektu języka Visual Basic szablonu.
W Nazwa wprowadź SiteColumnProjectTemplate, a następnie wybierz polecenie OK przycisk.
Visual Studiododaje SiteColumnProjectTemplate projektu do rozwiązania.
Usuń plik Class1 kodu z projektu.
Jeśli utworzono projektu języka Visual Basic, należy również usunąć następujące pliki z projektu:
MyApplication.Designer.vb
MyApplication.myapp
Resources.Designer.vb
Resources.resx
Settings.Designer.vb
Settings.Settings
Aby utworzyć rozszerzenie projektu
W Solution Explorer, otwórz menu skrótów dla węzła rozwiązanie, wybierz Dodaj, a następnie wybierz polecenie Nowy projekt.
W górnej części Nowy projekt okno dialogowe pole, upewnij się, że 4.5.NET Framework jest wybrany na liście wersje.NET Framework.
Rozwiń węzeł Visual C# lub języka Visual Basic Wybierz węzły, Windows węzła, a następnie wybierz Biblioteka klas szablonu.
W Nazwa wprowadź ProjectItemTypeDefinition , a następnie wybierz OK przycisk.
Visual Studiododaje ProjectItemTypeDefinition projektu do rozwiązania i otwiera plik domyślny kod Class1.
Usuń plik Class1 kodu z projektu.
Konfigurowanie rozszerzenie projektu
Dodawanie plików kodu i odwołania do zestawów skonfigurować rozszerzenie projektu.
Aby skonfigurować projektu
W projekcie ProjectItemTypeDefinition dodać plik kodu o nazwie SiteColumnProjectItemTypeProvider.
Na pasku menu wybierz Projekt, Dodaj odwołanie.
W Reference Manager - ProjectItemTypeDefinition okno dialogowe rozwiń zespoły węzeł, wybierz Framework węzła, a następnie zaznacz pole wyboru System.ComponentModel.Composition.
Wybierz rozszerzenia węzła, zaznacz pole wyboru obok zestawu Microsoft.VisualStudio.SharePoint, a następnie wybierz OK przycisk.
Definiowanie nowego typu element programu SharePoint projektu
Tworzenie klasy implementującej ISharePointProjectItemTypeProvider interfejsu, aby zdefiniować zachowanie nowy typ elementu projektu.Implementuje ten interfejs, w każdym przypadku, gdy chcesz zdefiniować nowy typ elementu projektu.
Aby zdefiniować nowy typ elementu programu SharePoint projektu
W SiteColumnProjectItemTypeProvider kod pliku, zastąpić domyślny kod następujący kod, a następnie zapisz plik.
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); } } } } }
Tworzenie szablonu projektu programu Visual Studio
Tworzenie szablonu projektu, powoduje włączenie przez deweloperów do tworzenia projektów programu SharePoint, które zawierają elementy projektu kolumny witryny.Szablon projektu programu SharePoint zawiera pliki, które są wymagane dla wszystkich projektów w programie Visual Studio, takich jak .csproj lub .vbproj i .vstemplate plików i plików, które są specyficzne dla projektów programu SharePoint.Aby uzyskać więcej informacji, zobacz Tworzenie elementu szablonów i szablony projektu dla elementów projektu programu SharePoint.
Ta procedura służy do tworzenia pusty projekt programu SharePoint do generowania plików, które są specyficzne dla projektów programu SharePoint.Następnie te pliki dodane do projektu SiteColumnProjectTemplate tak, że są one dołączone do szablonu, który jest generowany na podstawie tego projektu.Można także skonfigurować plik projektu SiteColumnProjectTemplate, aby określić, gdzie pojawia się szablonu projektu w Nowy projekt okno dialogowe.
Aby utworzyć pliki szablonu projektu
Uruchomienia drugiego wystąpienia z Visual Studio z poświadczeniami administracyjnymi.
Tworzenie projektu programu SharePoint 2010, o nazwie BaseSharePointProject.
Ważne W Kreatora dostosowania programu SharePoint, nie zaznaczaj Wdrażanie rozwiązań gospodarstwa jako przycisku opcji.
Dodawanie elementu do pustego elementu do projektu, a następnie nazwą elementu pole1.
Zapisz projekt, a następnie zamknij drugiego wystąpienia Visual Studio.
W wystąpieniu programu Visual Studio Otwórz rozwiązanie SiteColumnProjectItem, który ma w Solution Explorer, otwórz menu skrótów dla SiteColumnProjectTemplate projektu węzeł, wybierz Dodaj, a następnie wybierz Istniejącego elementu.
W Dodaj istniejący element okno dialogowe Otwórz listę rozszerzeń nazw plików, a następnie wybierz wszystkie pliki (*. *).
W katalogu, który zawiera projekt BaseSharePointProject, wybierz plik key.snk, a następnie wybierz Dodaj przycisk.
[!UWAGA]
W tym instruktażu tworzony szablon projektu używa tego samego pliku key.snk do podpisania każdego projektu, który jest tworzony przy użyciu szablonu.Aby rozwinąć ten próbki, aby utworzyć plik key.snk różne dla każdego wystąpienia projektu, zobacz Instruktaż: Tworzenie elementu projektu kolumny witryny z szablonu projektu, część 2.
Powtórz kroki od 5-8, aby dodać następujące pliki z określonych podfolderów w katalogu BaseSharePointProject:
\Field1\Elements.XML
\Field1\SharePointProjectItem.spdata
\Features\Feature1\Feature1.Feature
\Features\Feature1\Feature1.template.XML
\Package\Package.Package
\Package\Package.template.XML
Dodać te pliki bezpośrednio do projektu SiteColumnProjectTemplate; nie odtworzyć podfoldery pole1, funkcje lub pakiet w projekcie.Aby uzyskać więcej informacji na temat tych plików, zobacz Tworzenie elementu szablonów i szablony projektu dla elementów projektu programu SharePoint.
Jak skonfigurować deweloperzy odkryć szablon projektu, w oknie dialogowym Nowy projekt
W Solution Explorer, otwórz menu skrótów dla SiteColumnProjectTemplate projektu węzła, a następnie wybierz Unload projektu.Jeśli zostanie wyświetlony monit o zapisanie zmian do plików, wybierz opcję Tak przycisk.
Otwórz menu skrótów dla SiteColumnProjectTemplate ponownie, węzeł, a następnie wybierz Edytować SiteColumnProjectTemplate.csproj lub SiteColumnProjectTemplate.vbproj edytować.
W pliku projektu, zlokalizuj następujące VSTemplate element.
<VSTemplate Include="SiteColumnProjectTemplate.vstemplate">
Ten element należy zastąpić następujący kod XML.
<VSTemplate Include="SiteColumnProjectTemplate.vstemplate"> <OutputSubPath>SharePoint\SharePoint14</OutputSubPath> </VSTemplate>
OutputSubPath Element określa dodatkowe foldery w ścieżce, pod którym szablon projektu jest tworzony podczas tworzenia projektu.Foldery określone tutaj zapewnienia szablon projektu będzie dostępny tylko w przypadku, gdy klienci Otwórz Nowy projekt okno dialogowe rozwiń SharePoint węzła, a następnie wybierz 2010 węzła.
Zapisz i zamknij plik.
W Solution Explorer, otwórz menu skrótów dla SiteColumnProjectTemplate projektu, a następnie wybierz Projektu Reload.
Edycja plików szablonu projektu
W projekcie SiteColumnProjectTemplate edytować następujące pliki, aby zdefiniować zachowanie szablonu projektu:
AssemblyInfo.cs lub AssemblyInfo.vb
Elements.XML
SharePointProjectItem.spdata
Feature1.Feature
Package.Package
SiteColumnProjectTemplate.vstemplate
ProjectTemplate.csproj lub ProjectTemplate.vbproj
W poniższych procedurach dodasz parametrów zastępowalnych dla niektórych z tych plików.Parametr wymienny jest token, który rozpoczyna i kończy się znakiem dolara ($).Gdy użytkownik używa tego szablonu projektu, aby utworzyć projekt, Visual Studio automatycznie zastępuje te parametry w nowym projekcie określonych wartości.Aby uzyskać więcej informacji, zobacz Parametry wymienne.
Aby edytować plik AssemblyInfo.cs lub AssemblyInfo.vb
W programie project SiteColumnProjectTemplate Otwórz plik AssemblyInfo.cs lub AssemblyInfo.vb, a następnie dodaj następującą instrukcję na początek:
Imports System.Security
using System.Security;
Gdy Rozwiązań w piaskownicy ustawiono właściwość projektu programu SharePoint True, dodaje Visual Studio System.Security.AllowPartiallyTrustedCallersAttribute do AssemblyInfo plik kodu.Jednak nie importuje plik kodu AssemblyInfo w szablonie projektu System.Security nazw domyślnie.Należy dodać to using lub Imports instrukcję, aby zapobiec błędy kompilacji.
Zapisz i zamknij plik.
Aby edytować plik Elements.xml
W projekcie SiteColumnProjectTemplate zawartość pliku Elements.xml należy zastąpić następujący kod 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>
Dodaje nowy XML Field element, który określa nazwę kolumny witryny, jego typ podstawowy i grupę do listy kolumnę witryny w galerii.Aby uzyskać więcej informacji na temat zawartości tego pliku, zobacz Schematu definicji pola.
Zapisz i zamknij plik.
Aby edytować plik SharePointProjectItem.spdata
W projekcie SiteColumnProjectTemplate zawartość pliku SharePointProjectItem.spdata należy zastąpić następujący kod 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>
Nowe XML wprowadza się następujące zmiany do pliku:
Zmiany Type atrybut ProjectItem element, aby ten sam ciąg, który jest przekazywany do SharePointProjectItemTypeAttribute w definicji elementu projektu ( SiteColumnProjectItemTypeProvider klasy, utworzony wcześniej w tym instruktażu).
Usuwa SupportedTrustLevels i SupportedDeploymentScopes atrybuty z ProjectItem element.Wartości tych atrybutów są zbędne, ponieważ poziomy zaufania i wdrażania zakresów są określone w SiteColumnProjectItemTypeProvider klasy w projekcie ProjectItemTypeDefinition.
Aby uzyskać więcej informacji na temat zawartości plików, .spdata, zobacz Odwołanie schematu element projektu programu SharePoint.
Zapisz i zamknij plik.
Aby edytować plik Feature1.feature
W projekcie SiteColumnProjectTemplate zawartość pliku Feature1.feature należy zastąpić następujący kod 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>
Nowe XML wprowadza się następujące zmiany do pliku:
Zmienia wartości Id i featureId atrybuty feature element, aby $guid4$.
Zmienia wartości itemId atrybut projectItemReference element, aby $guid2$.
Aby uzyskać więcej informacji na temat plików .feature, zobacz Tworzenie elementu szablonów i szablony projektu dla elementów projektu programu SharePoint.
Zapisz i zamknij plik.
Aby edytować plik Package.package
W projekcie SiteColumnProjectTemplate zawartość pliku Package.package należy zastąpić następujący kod 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>
Nowe XML wprowadza się następujące zmiany do pliku:
Zmienia wartości Id i solutionId atrybuty package element, aby $guid3$.
Zmienia wartości itemId atrybut featureReference element, aby $guid4$.
Aby uzyskać więcej informacji na temat .package plików, zobacz Tworzenie elementu szablonów i szablony projektu dla elementów projektu programu SharePoint.
Zapisz i zamknij plik.
Aby edytować plik SiteColumnProjectTemplate.vstemplate
W projekcie SiteColumnProjectTemplate zastąpić zawartość pliku SiteColumnProjectTemplate.vstemplate z jednym z następujących sekcji XML.
- Jeśli tworzysz szablon projektu programu Visual C#, należy używać następujących 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>
- Jeśli tworzysz szablon projektu języka Visual Basic, należy użyć następujących 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>
Nowe XML wprowadza się następujące zmiany do pliku:
Zestawy Name elementu na wartość Kolumny witryny.(Nazwa ta pojawia się w Nowy projekt okno dialogowe).
Dodaje ProjectItem elementów dla każdego filethat jest wliczony w cenę w przypadku każdego projektu.
Korzysta z obszaru nazw "https://schemas.microsoft.com/developer/vstemplate/2005".Inne pliki projektu, w tym rozwiązaniu używać obszaru nazw "https://schemas.microsoft.com/developer/msbuild/2003".Dlatego będą generowane komunikaty ostrzegawcze schematu XML, ale można je pominąć w tym instruktażu.
Aby uzyskać więcej informacji na temat zawartości plików, .vstemplate, zobacz Visual Studio szablonu schematu odwołania.
Zapisz i zamknij plik.
Aby edytować plik ProjectTemplate.csproj lub ProjectTemplate.vbproj
W projekcie SiteColumnProjectTemplate zastąpić zawartość pliku ProjectTemplate.csproj lub ProjectTemplate.vbproj z jednym z następujących sekcji XML.
- Jeśli tworzysz szablon projektu programu Visual C#, należy używać następujących 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>
- Jeśli tworzysz szablon projektu języka Visual Basic, należy użyć następujących 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>
Nowe XML wprowadza się następujące zmiany do pliku:
Używa TargetFrameworkVersion element, aby określić.NET Framework 3.5, nie 4.5.
Dodaje SignAssembly i AssemblyOriginatorKeyFile elementy do podpisania projektu wyjściowego.
Dodaje Reference elementy do montażu odwołuje używające projektów programu SharePoint.
Dodaje elementy dla każdego pliku domyślnego projektu, takie jak Elements.xml i SharePointProjectItem.spdata.
Zapisz i zamknij plik.
Tworzenie pakiet VSIX wdrożyć szablon projektu
Aby wdrożyć rozszerzenia, użyj projektu VSIX w SiteColumnProjectItem rozwiązanie, aby utworzyć pakiet VSIX.Najpierw należy skonfigurować pakiet VSIX modyfikując plik source.extension.vsixmanifest, który jest zawarty w projekcie VSIX.Następnie utwórz pakiet VSIX przez budowania rozwiązania.
Aby skonfigurować i utworzyć pakiet VSIX
W Solution Explorer, w SiteColumnProjectItem projektu, otwórz plik source.extension.vsixmanifest w edytorze manifestu.
Plik source.extension.vsixmanifest jest podstawą dla pliku extension.vsixmanifest, które wymagają wszystkie pakiety VSIX.Aby uzyskać więcej informacji na temat tego pliku, zobacz VSIX rozszerzenie schematu odwołania.
W Nazwa produktu wprowadź Kolumny witryny.
W autora wprowadź Contoso.
W Opis wprowadź projektu programu SharePoint do tworzenia kolumn witryny.
Wybierz aktywów kartę, a następnie wybierz Nowa przycisk.
Dodać nowego środka zostanie otwarte okno dialogowe.
W typu listy, wybierz opcję Microsoft.VisualStudio.ProjectTemplate.
[!UWAGA]
Wartość ta odpowiada ProjectTemplate elementu w pliku extension.vsixmanifest.Ten element identyfikuje podfolder w pakiecie VSIX, który zawiera szablon projektu.Aby uzyskać więcej informacji, zobacz ProjectTemplate Element (VSX Schema).
W źródło listy, wybierz opcję projektu w bieżącym rozwiązaniem.
W Projekt listę i wybrać SiteColumnProjectTemplate, a następnie wybierz polecenie OK przycisk.
Wybierz Nowa przycisk ponownie.
Dodać nowego środka zostanie otwarte okno dialogowe.
W typu listy, wybierz opcję Microsoft.VisualStudio.MefComponent.
[!UWAGA]
Wartość ta odpowiada MefComponent elementu w pliku extension.vsixmanifest.Ten element Określa nazwę zestawu rozszerzeń w pakiecie VSIX.Aby uzyskać więcej informacji, zobacz MEFComponent Element.
W źródło listy, wybierz opcję projektu w bieżącym rozwiązaniem.
W Projekt listy, wybierz opcję ProjectItemTypeDefinition, a następnie wybierz polecenie OK przycisk.
Na pasku menu wybierz budować, Budowania rozwiązania, a następnie upewnij się, że projekt kompiluje się bez błędów.
Testowanie szablonu projektu
Teraz można przystąpić do badania szablon projektu.Po pierwsze rozpocząć debugowanie rozwiązanie SiteColumnProjectItem w doświadczalnych wystąpienie programu Visual Studio.Następnie, test Kolumny witryny projektów eksperymentalnych wystąpienie programu Visual Studio.Wreszcie budowy i uruchomienia projektu programu SharePoint, aby sprawdzić, czy kolumna witryna działa zgodnie z oczekiwaniami.
Aby rozpocząć debugowanie rozwiązanie
Uruchom ponownie program Visual Studio z poświadczeniami administracyjnymi, a następnie otwórz rozwiązanie SiteColumnProjectItem.
W pliku SiteColumnProjectItemTypeProvider kod, należy dodać punkt przerwania w pierwszej linii kodu w InitializeType metoda, a następnie wybierz polecenie F5 klawisz, aby rozpocząć debugowanie.
Visual Studio instaluje rozszerzenie do %UserProfile%\AppData\Local\Microsoft\VisualStudio\10.0Exp\Extensions\Contoso\Site Column\1.0 i uruchamia wystąpienie doświadczalnych Visual Studio.Element projektu spowoduje przetestowanie w tym wystąpieniu programu Visual Studio.
Aby przetestować projekt programu Visual Studio
Eksperymentalne wystąpienie programu Visual Studio, na pasku menu wybierz pliku, Nowa, Projekt.
Rozwiń Visual C# lub języka Visual Basic rozwiń węzeł (w zależności od języka obsługującego szablonu projektu), SharePoint węzła, a następnie wybierz polecenie 2010 węzła.
Na liście szablonów projektu, wybierz opcję Kolumny witryny szablonu.
W Nazwa wprowadź SiteColumnTest , a następnie wybierz OK przycisk.
W Solution Explorer, nowy projekt pojawia się element projektu, o nazwie pole1.
Sprawdź, że kod w inne wystąpienie programu Visual Studio zatrzymuje się na punkt przerwania, które wcześniej w zestaw InitializeType metoda, a następnie wybierz polecenie F5 klawisz, aby kontynuować debugowania projektu.
W Solution Explorer, wybierz opcję pole1 węzła, a następnie wybierz polecenie F4 klucz.
Właściwości zostanie otwarte okno.
Na liście właściwości Sprawdź, czy właściwość Przykład właściwości pojawia się.
Aby przetestować kolumnę witryny w programie SharePoint
W Solution Explorer, wybierz opcję SiteColumnTest węzła.
W Właściwości okna, w polu tekstowym, to obok Adres URL witryny właściwość, wprowadź https://localhost.
Ten krok określa lokalnej witryny programu SharePoint na komputerze deweloperskim, którego chcesz używać do debugowania.
[!UWAGA]
Adres URL witryny właściwość jest domyślnie puste, ponieważ szablon kolumny witryny projektu nie zapewnia Kreator pobierania tej wartości podczas tworzenia projektu.Jak dodać Kreator, który zwraca autora dla tej wartości, a następnie konfiguruje tej właściwości w nowym projekcie, zobacz Instruktaż: Tworzenie elementu projektu kolumny witryny z szablonu projektu, część 2.
Wybierz F5 klucz.
Kolumna witryny jest pakowana i wdrożone w witrynie programu SharePoint, która jest określona w Adres URL witryny właściwości projektu.Otwiera przeglądarkę sieci web do domyślnej strony tej witryny.
[!UWAGA]
Jeśli Niepełnosprawnych debugowanie skryptu pojawi się okno dialogowe, wybierz opcję Tak przycisk, aby kontynuować debugowania projektu.
Na Akcje witryny menu, wybierz opcję Ustawienia witryny.
Na Ustawienia witryny strony, pod Galerie listy, wybierz opcję kolumny witryny link.
Na liście kolumn witryny, sprawdź, czy Własne kolumny grupa zawiera kolumnę o nazwie SiteColumnTest.
Zamknij przeglądarkę sieci web.
Oczyszczanie na komputerze deweloperskim
Po zakończeniu badania projektu, należy usunąć szablon projektu z eksperymentalnych wystąpienie programu Visual Studio.
Aby oczyścić komputer rozwoju
Eksperymentalne wystąpienie programu Visual Studio, na pasku menu wybierz Narzędzia, rozszerzenia i aktualizacje.
Rozszerzenia i aktualizacje zostanie otwarte okno dialogowe.
Na liście Rozszerzenia wybierz Kolumny witryny rozszerzenie, a następnie wybierz polecenie odinstalować przycisk.
W wyświetlonym oknie dialogowym wybierz Tak przycisk, aby potwierdzić, że chcesz odinstalować rozszerzenie.
Wybierz Zamknij przycisk, aby zakończyć dezinstalację.
Zamknij oba wystąpienia programu Visual Studio (wystąpienie eksperymentalnych i wystąpienie programu Visual Studio, w którym roztwór SiteColumnProjectItem jest otwarty).
Następne kroki
Po wykonaniu tej procedury, można dodać do szablonu projektu kreatora.Gdy użytkownik tworzy projektu kolumny witryny, Kreator pyta użytkownika o adres URL witryny, aby używać do debugowania i nowe rozwiązanie jest w trybie piaskownicy, a Kreator konfiguruje nowego projektu z tej informacji.Kreator również zbiera informacje o kolumnie (np. typu podstawowego i grupę do listy kolumn w galerii kolumn witryny) i dodaje te informacje do pliku Elements.xml w nowym projekcie.Aby uzyskać więcej informacji, zobacz Instruktaż: Tworzenie elementu projektu kolumny witryny z szablonu projektu, część 2.
Zobacz też
Zadania
Instruktaż: Tworzenie elementu projektu kolumny witryny z szablonu projektu, część 2
Koncepcje
Definiowanie typów elementów projektu programu SharePoint niestandardowe
Tworzenie elementu szablonów i szablony projektu dla elementów projektu programu SharePoint
Zapisywanie danych w rozszerzeniach systemu projektu programu SharePoint
Kojarzenie danych niestandardowy z rozszerzeniami narzędzia programu SharePoint