Passo a passo: Criando um Item de projeto de coluna do Site com um modelo de projeto, parte 1
Os projetos do SharePoint são contëineres para um ou mais itens de projeto do SharePoint.Você pode estender o sistema do projeto do SharePoint no Visual Studio para criar seus próprios tipos de item de projeto do SharePoint e então associando-os a um modelo de projeto.Em essa explicação passo a passo, você definirá um tipo de item de projeto para criar uma coluna de site, e depois criará um modelo de projeto que pode ser usado para criar um novo projeto que contém um item de projeto da coluna do site.
Essa explicação passo a passo demonstra as seguintes tarefas:
Criando uma extensão do Visual Studio que define um novo tipo de item de projeto do SharePoint para uma coluna de site.O tipo de item de projeto inclui uma propriedade personalizado simples que aparece na janela de Propriedades .
Criando Visual Studio projeta o modelo para o item de projeto.
Criando um pacote de extensão de Visual Studio (VSIX) para implantar o modelo de projeto e o assembly de extensão.
Depuração e teste o item de projeto.
este é um passo a passo autônomo.Depois que você concluir essa explicação passo a passo, você pode melhorar o item de projeto adicionando um assistente para o modelo de projeto.Para obter mais informações, consulte Passo a passo: Criando um Item de projeto de coluna do Site com um modelo de projeto, parte 2.
Observação |
---|
Você pode baixar um exemplo que contém os projetos terminado, o código, e outros arquivos para essa explicação passo a passo de seguinte local: https://go.microsoft.com/fwlink/?LinkId=191369. |
Pré-requisitos
Você precisa dos seguintes componentes no computador de desenvolvimento de concluir este explicação passo a passo:
Edições suportadas do Microsoft Windows, do SharePoint e de Visual Studio.Para obter mais informações, consulte Requisitos para o desenvolvimento de soluções do SharePoint.
O SDK do Visual Studio.Essa explicação passo a passo usa o modelo de projeto de VSIX no SDK para criar um conjunto de VSIX para implantar o item de projeto.Para obter mais informações, consulte Estender as ferramentas do SharePoint em Visual Studio.
O conhecimento de seguinte conceito é útil, mas não necessário, concluir a explicação passo a passo:
Colunas de site no SharePoint.Para obter mais informações, consulte Colunas.
Modelos no Visual Studio.Para obter mais informações, consulte Introdução aos modelos de Visual Studio.
Criando projetos
Para concluir esta explicação passo a passo, você precisa criar três projetos:
um projeto de VSIX.Este projeto cria o conjunto de VSIX para implantar o item de projeto da coluna do site e o modelo de projeto.
Um projeto do modelo de projeto.Este projeto cria um modelo de projeto que pode ser usado para criar um novo projeto do SharePoint que contém o item de projeto da coluna do site.
Um projeto de biblioteca de classes.Este projeto que implementa uma extensão do Visual Studio que define o comportamento de item de projeto da coluna do site.
Inicie o passo-a-passo criando projetos.
Para criar o projeto VSIX
Inicie o Visual Studio
Em a barra de menu, escolha Arquivo, Novo, Projeto.
Em a parte superior da caixa de diálogo de Novo Projeto , certifique-se de que o .NET Framework 4,5 é escolhido na lista de versões do .NET Framework.
Expanda os nós de Visual Basic ou de Visual C# , e então escolha o nó de Extensibilidade .
Observação O nó de Extensibilidade está disponível somente se você instalar o Visual Studio 2012.Para obter mais informações, consulte a seção de pré-requisito anteriormente em este tópico.
Em a lista de modelos de projeto, escolha projeto de VSIX.
Em a caixa de Nome , entre em SiteColumnProjectItem, e então escolha o botão de OK .
Visual Studio adiciona o projeto de SiteColumnProjectItem a Gerenciador de Soluções.
Para criar o projeto do modelo de projeto
Em Gerenciador de Soluções, abra o menu de atalho para o nó da solução, escolha Adicionar, e então escolha Novo Projeto.
Observação Em projetos Visual Basic, o nó da solução aparece em Gerenciador de Soluções somente quando a caixa de seleção de Sempre mostrar solução está selecionada em General, Projects and Solutions, Options Dialog Box.
Em a parte superior da caixa de diálogo de Novo Projeto , certifique-se de que o .NET Framework 4,5 é escolhido na lista de versões do .NET Framework.
Expanda o nó de Visual C# ou de Visual Basic , e então escolha o nó de Extensibilidade .
Em a lista de modelos de projeto, escolha o modelo de Modelo de projeto C# ou de Modelo de projeto do Visual Basic .
Em a caixa de Nome , entre em SiteColumnProjectTemplate, e então escolha o botão de OK .
Visual Studio adiciona o projeto de SiteColumnProjectTemplate à solução.
Exclua o arquivo de código Class1 do projeto.
Se você criou um projeto Visual Basic, também excluir os seguintes arquivos de projeto:
MyApplication.Designer.vb
MyApplication.myapp
Resources.Designer.vb
Resources.resx
Settings.Designer.vb
Settings.settings
Para criar o projeto de extensão
Em Gerenciador de Soluções, abra o menu de atalho para o nó da solução, escolha Adicionar, e então escolha Novo Projeto.
Em a parte superior da caixa de diálogo de Novo Projeto , certifique-se de que o .NET Framework 4,5 é escolhido na lista de versões do .NET Framework.
Expanda os nós de Visual C# ou de Visual Basic , escolha o nó de Janelas , e então escolha o modelo de Biblioteca de Classes .
Em a caixa de Nome , insira ProjectItemTypeDefinition e então escolha o botão de OK .
Visual Studio adiciona o projeto de ProjectItemTypeDefinition a solução e abre o arquivo de código Class1 de opção.
Exclua o arquivo de código Class1 do projeto.
Configurando o projeto de extensão
Adicionar arquivos de código e referências assembly para configurar o projeto de extensão.
para configurar o projeto
Em o projeto de ProjectItemTypeDefinition, adicione um arquivo de código que é chamado SiteColumnProjectItemTypeProvider.
Em a barra de menu, escolha Projeto, Adicionar Referência.
Em a caixa de diálogo de Gerenciador de referência - ProjectItemTypeDefinition , expanda o nó de Assemblies , escolha o nó de estrutura , selecione a caixa de seleção de System.ComponentModel.Composition.
Escolha o nó de Extensões , selecione a caixa de seleção próxima ao conjunto de Microsoft.VisualStudio.SharePoint, e então escolha o botão de OK .
Definindo o novo tipo de item de projeto do SharePoint
Crie uma classe que implementa a interface de ISharePointProjectItemTypeProvider para definir o comportamento de tipo de item de projeto.Implementar essa interface sempre que você deseja definir um novo tipo de item de projeto.
Para definir um novo tipo de item de projeto do SharePoint
Em o arquivo de código de SiteColumnProjectItemTypeProvider , substitua o código gerado automaticamente pelo seguinte código e em seguida, salve o arquivo.
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); } } } } }
Criando um modelo de projeto do Visual Studio
Criando um modelo de projeto, você permite que outros desenvolvedores criar projetos do SharePoint que contêm itens de projeto de coluna do site.Um modelo de projeto do SharePoint inclui os arquivos necessários para todos os projetos no Visual Studio, como arquivos .csproj ou .vbproj e .vstemplate, e arquivos que são específicos para projetos do SharePoint.Para obter mais informações, consulte Criando modelos de Item e projeto para itens de projeto do SharePoint.
Em esse procedimento, você cria um projeto vazio do SharePoint gerar os arquivos que são específicos para projetos do SharePoint.Você então adiciona esses arquivos para o projeto de SiteColumnProjectTemplate de modo que sejam incluídos no modelo que é gerado de esse projeto.Você também configura o arquivo de projeto de SiteColumnProjectTemplate para especificar onde o modelo de projeto aparece na caixa de diálogo de Novo Projeto .
Para criar os arquivos para o modelo de projeto
Inicie uma segunda instância de Visual Studio com credenciais administrativas.
Crie um projeto do SharePoint 2010 que é chamado BaseSharePointProject.
Importante Em Assistente de personalização do SharePoint, não selecione o botão de opção de Implantar como uma solução de farm .
Adicionar um item vazio do elemento ao projeto, e nomeie o item Field1.
Salvar o projeto, e feche a segunda instância de Visual Studio.
Em a instância de Visual Studio que tem a solução de SiteColumnProjectItem aberta, em Gerenciador de Soluções, abra o menu de atalho para o nó de projeto de SiteColumnProjectTemplateAdicionar, escolha, e escolha Item Existente.
Em a caixa de diálogo de Adicionar item existente , abra a lista de extensões de arquivo, e então escolha todos os arquivos (*.*).
Em o diretório que contém o projeto de BaseSharePointProject, selecione o arquivo de key.snk, e então escolha o botão de Adicionar .
Observação Em este passo-a-passo, o modelo de projeto que você criou usa o mesmo arquivo de key.snk assinar cada projeto que é criado usando o modelo.Para saber como expandir este exemplo para criar um arquivo diferente de key.snk para cada instância de projeto, consulte Passo a passo: Criando um Item de projeto de coluna do Site com um modelo de projeto, parte 2.
Repita as etapas 5-8 para adicionar os seguintes arquivos das subpastas especificadas no diretório de BaseSharePointProject:
\Field1\Elements.xml
\Field1\SharePointProjectItem.spdata
\Features\Feature1\Feature1.feature
\Features\Feature1\Feature1.Template.xml
\Package\Package.package
\Package\Package.Template.xml
Adicione esses arquivos diretamente para o projeto de SiteColumnProjectTemplate; não recriar as subpastas de Field1, de recursos, ou de pacote no projeto.Para obter mais informações sobre esses arquivos, consulte Criando modelos de Item e projeto para itens de projeto do SharePoint.
Para configurar como os desenvolvedores descobrem o modelo de projeto na caixa de diálogo new project
Em Gerenciador de Soluções, abra o menu de atalho para o nó de projeto de SiteColumnProjectTemplate , e então escolha Descarregar projeto.Se você for solicitado a salvar as alterações para quaisquer arquivos, escolha o botão de Sim .
Abra o menu de atalho para o nó de SiteColumnProjectTemplate novamente, e então escolha edição SiteColumnProjectTemplate.csproj ou edição SiteColumnProjectTemplate.vbproj.
Em o arquivo de projeto, localize o elemento de VSTemplate .
<VSTemplate Include="SiteColumnProjectTemplate.vstemplate">
Substitua o elemento com o seguinte XML.
<VSTemplate Include="SiteColumnProjectTemplate.vstemplate"> <OutputSubPath>SharePoint\SharePoint14</OutputSubPath> </VSTemplate>
O elemento de OutputSubPath especifica pastas adicionais em com que o modelo de projeto é criado quando você compila o projeto.As pastas especificadas aqui garantem que o modelo de projeto está disponível apenas quando clientes abre a caixa de diálogo de Novo Projeto , expanda o nó de SharePoint , e escolha no nó de 2010 .
Salve e feche o arquivo.
Em Gerenciador de Soluções, abra o menu de atalho para o projeto de SiteColumnProjectTemplate , e então escolha Recarregar projeto.
Editando arquivos de modelo de projeto
Em o projeto de SiteColumnProjectTemplate, edite os seguintes arquivos para definir o comportamento do modelo de projeto:
AssemblyInfo.cs ou AssemblyInfo.vb
Elements.xml
SharePointProjectItem.spdata
Feature1.feature
Package.package
SiteColumnProjectTemplate.vstemplate
ProjectTemplate.csproj ou ProjectTemplate.vbproj
Em os procedimentos a seguir, você adicionará parâmetros substituível a alguns de esses arquivos.Um parâmetro substituível é um símbolo que inicie e termina com o caractere de cifrão ($).Quando um usuário usa esse modelo de projeto para criar um projeto, o Visual Studio substitui automaticamente esses parâmetros no novo projeto com os valores específicos.Para obter mais informações, consulte Parâmetros substituíveis.
Para editar o arquivo AssemblyInfo.cs ou AssemblyInfo.vb
Em o projeto de SiteColumnProjectTemplate, abra o arquivo AssemblyInfo.cs ou AssemblyInfo.vb, e então adicione a seguinte declaração para o topo de ele:
Imports System.Security
using System.Security;
Quando a propriedade de Em a área restrita de solução de um projeto do SharePoint é definida como True, o Visual Studio adiciona System.Security.AllowPartiallyTrustedCallersAttribute ao código do arquivo AssemblyInfo.Em o entanto, o arquivo AssemblyInfo de código no modelo de projeto não importar o namespace de System.Security por padrão.Você deve adicionar essa instrução de using ou de Imports para evitar para compilar erros.
Salve e feche o arquivo.
para editar o arquivo de Elements.xml
Em o projeto de SiteColumnProjectTemplate, substitua o conteúdo do arquivo de Elements.xml com o seguinte 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>
XML adiciona um novo elemento de Field que define o nome da coluna do site, do tipo base, e do grupo em para listar que a coluna de site na galeria.Para obter mais informações sobre conteúdo do arquivo, consulte Esquema de definição do campo.
Salve e feche o arquivo.
para editar o arquivo de SharePointProjectItem.spdata
Em o projeto de SiteColumnProjectTemplate, substitua o conteúdo do arquivo de SharePointProjectItem.spdata com o seguinte 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>
Novo XML faça as seguintes alterações no arquivo:
Alterar o atributo de Type do elemento de ProjectItem com a mesma cadeia de caracteres que é passada para SharePointProjectItemTypeAttribute na definição do item de projeto (a classe de SiteColumnProjectItemTypeProvider que você criou anteriormente em essa explicação passo a passo.)
Remove os atributos de SupportedTrustLevels e de SupportedDeploymentScopes do elemento de ProjectItem .Esses valores de atributos são desnecessários pois os níveis de confiança e escopos de implantação são especificados na classe de SiteColumnProjectItemTypeProvider no projeto de ProjectItemTypeDefinition.
Para obter mais informações sobre conteúdo de arquivos de .spdata, consulte Referência de esquema de Item de projeto do SharePoint.
Salve e feche o arquivo.
para editar o arquivo de Feature1.feature
Em o projeto de SiteColumnProjectTemplate, substitua o conteúdo do arquivo de Feature1.feature com o seguinte 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>
Novo XML faça as seguintes alterações no arquivo:
Modifica os valores dos atributos de Id e de featureId do elemento de feature a $guid4$.
Modifica os valores de atributo de itemId do elemento de projectItemReference a $guid2$.
Para obter mais informações sobre arquivos de .feature, consulte Criando modelos de Item e projeto para itens de projeto do SharePoint.
Salve e feche o arquivo.
para editar o arquivo de Package.package
Em o projeto de SiteColumnProjectTemplate, substitua o conteúdo do arquivo de Package.package com o seguinte 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>
Novo XML faça as seguintes alterações no arquivo:
Modifica os valores dos atributos de Id e de solutionId do elemento de package a $guid3$.
Modifica os valores de atributo de itemId do elemento de featureReference a $guid4$.
Para obter mais informações sobre arquivos de .package, consulte Criando modelos de Item e projeto para itens de projeto do SharePoint.
Salve e feche o arquivo.
para editar o arquivo de SiteColumnProjectTemplate.vstemplate
Em o projeto de SiteColumnProjectTemplate, substitua o conteúdo do arquivo de SiteColumnProjectTemplate.vstemplate com uma das seguintes seções XML.
- Se você estiver criando um modelo de projeto visual C#, use o seguinte 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>
- Se você estiver criando um modelo de projeto do Visual Basic, use o seguinte 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>
Novo XML faça as seguintes alterações no arquivo:
Define o elemento de Name ao valor Coluna de Site.(Esse nome aparece na caixa de diálogo de Novo Projeto ).
Adiciona elementos de ProjectItem para cada os filethat incluídos em cada instância do projeto.
Usa o namespace “https://schemas.microsoft.com/developer/vstemplate/2005”.Outros arquivos de projeto em esta solução usam o namespace de “https://schemas.microsoft.com/developer/msbuild/2003”.Portanto, as mensagens de aviso de esquema XML serão geradas, mas você pode negligenciá-las em essa explicação passo a passo.
Para obter mais informações sobre conteúdo dos arquivos .vstemplate, consulte Referência do esquema de modelo do Visual Studio.
Salve e feche o arquivo.
para editar o arquivo de ProjectTemplate.csproj ou de ProjectTemplate.vbproj
Em o projeto de SiteColumnProjectTemplate, substitua o conteúdo do arquivo de ProjectTemplate.csproj ou arquivo de ProjectTemplate.vbproj com uma das seguintes seções XML.
- Se você estiver criando um modelo de projeto visual C#, use o seguinte 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>
- Se você estiver criando um modelo de projeto do Visual Basic, use o seguinte 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>
Novo XML faça as seguintes alterações no arquivo:
Usa o elemento de TargetFrameworkVersion para especificar o .NET Framework 3,5, não 4,5.
Adiciona SignAssembly e elementos de AssemblyOriginatorKeyFile para assinar a saída do projeto.
Adiciona elementos de Reference para as referências assembly que usam os projetos do SharePoint.
Adiciona elementos para cada arquivo padrão no projeto, como Elements.xml e SharePointProjectItem.spdata.
Salve e feche o arquivo.
Criando um conjunto de VSIX para implantar o modelo de projeto
Para implantar a extensão, use o projeto de VSIX na solução de SiteColumnProjectItem criar um conjunto de VSIX.Primeiro, configure o conjunto de VSIX modificando o arquivo de source.extension.vsixmanifest que está incluído no projeto de VSIX.Em seguida, crie o conjunto de VSIX criando a solução.
Para configurar e criar o conjunto de VSIX
Em Gerenciador de Soluções, no projeto de SiteColumnProjectItem , abra o arquivo de manifesto source.extension.vsixmanifest no editor.
O arquivo de source.extension.vsixmanifest é a base para o arquivo de extension.vsixmanifest que quaisquer pacotes de VSIX exigem.Para obter mais informações sobre este arquivo, consulte Referência de esquema de extensão VSIX.
Em a caixa de Nome do produto , entre em coluna de site.
Em a caixa de Autor , entre em Contoso.
Em a caixa de Descrição , entre em Um projeto do SharePoint para criar colunas de site.
Escolha a guia de Ativos , e então escolha o botão de Novo .
a caixa de diálogo de adicionar o novo recurso abre.
Em a lista de Tipo , escolha Microsoft.VisualStudio.ProjectTemplate.
Observação Esse valor corresponde ao elemento de ProjectTemplate no arquivo de extension.vsixmanifest.Esse elemento identifica a subpasta no pacote de VSIX que contém o modelo de projeto.Para obter mais informações, consulte ProjectTemplate Element (VSX Schema).
Em a lista de Origem , escolha Um projeto na solução atual.
Em a lista de Projeto , e SiteColumnProjectTemplate, escolha e então escolha o botão de OK .
Escolha o botão de Novo novamente.
a caixa de diálogo de adicionar o novo recurso abre.
Em a lista de Tipo , escolha Microsoft.VisualStudio.MefComponent.
Observação Esse valor corresponde ao elemento de MefComponent no arquivo de extension.vsixmanifest.Esse elemento especifica o nome de um assembly de extensão no conjunto de VSIX.Para obter mais informações, consulte MEFComponent Element.
Em a lista de Origem , escolha Um projeto na solução atual.
Em a lista de Projeto , escolha, e escolha ProjectItemTypeDefinitionno botão de OK .
Em a barra de menu, escolha Compilar, Compilar solução, e então certifique-se de que o projeto compila sem erros.
Testando o modelo de projeto
Você agora está pronto para testar o modelo de projeto.Primeiro, iniciar a depuração da solução SiteColumnProjectItem na instância de avaliação do Visual Studio.Em seguida, testar o projeto de Coluna de Site na instância de avaliação do Visual Studio.Finalmente, compilação e executar o projeto do SharePoint verifique que a coluna de site funciona como esperado.
Para iniciar a depuração da solução
Reinicie o Visual Studio com credenciais administrativas, e abra a solução de SiteColumnProjectItem.
Em o arquivo de código de SiteColumnProjectItemTypeProvider, adicione um ponto de interrupção na primeira linha de código no método de InitializeType , e escolha a chave de F5 para iniciar a depuração.
O Visual Studio instala a extensão em %UserProfile%\AppData\Local\Microsoft\VisualStudio\10.0Exp\Extensions\Contoso\Site Column\1.0 e inicia uma instância de avaliação do Visual Studio.Você irá testar o item de projeto em esse caso do Visual Studio.
Para testar o projeto no Visual Studio
Em a instância de avaliação do Visual Studio, na barra de menu, escolha Arquivo, Novo, Projeto.
Expanda o nó de Visual C# ou de Visual Basic (dependendo do idioma que seu modelo de projeto oferece suporte), expanda o nó de SharePoint , e então escolha o nó de 2010 .
Em a lista de modelos de projeto, escolha o modelo de Coluna de Site .
Em a caixa de Nome , entre em SiteColumnTest e então escolha o botão de OK .
Em Gerenciador de Soluções, um novo projeto aparece com um item de projeto que é chamado Campo1.
Verifique se o código em outra instância do Visual Studio pára no ponto de interrupção que você definiu anteriormente no método de InitializeType , e então escolha a chave de F5 para continuar a depuração o projeto.
Em Gerenciador de Soluções, escolha o nó de Campo1 , e escolha a chave de F4 .
a janela de Propriedades abre.
Em as propriedades lista, verifique que a propriedade Exemplo de propriedade aparece.
Para testar a coluna de site no SharePoint
Em Gerenciador de Soluções, escolha o nó de SiteColumnTest .
Em a janela de Propriedades , na caixa de texto que é próximo à propriedade de URL do Site , entre em https://localhost.
Esta etapa especifica o site da web do SharePoint local no computador de desenvolvimento que você deseja usar para depurar.
Observação A propriedade de URL do Site está vazia por padrão porque o modelo de projeto de coluna de site não fornece um assistente para coletar esse valor quando o projeto é criado.Para saber como adicionar um assistente que solicita ao desenvolvedor esse valor e configure então essa propriedade para o novo projeto, consulte Passo a passo: Criando um Item de projeto de coluna do Site com um modelo de projeto, parte 2.
Escolha a chave de F5 .
A coluna do site é empacotada e implantado para o site do SharePoint que é especificada na propriedade de URL do Site do projeto.Navegador da web abre a página padrão de esse site.
Observação Se a caixa de diálogo aparece Depuração de Script Desabilitada , escolha o botão de Sim para continuar a depuração o projeto.
Em o menu de Ações do Site , escolha Configurações do Site.
Em a página de Configurações do Site , na lista de Galerias , escolha o link de Colunas de Site .
Em a lista de colunas de site, verifique se um grupo de Colunas Personalizadas contém uma coluna que é chamada SiteColumnTest.
Feche o navegador da web.
Limpando o computador de desenvolvimento
Depois que você concluir testar o projeto, remova o modelo de projeto de instância de avaliação do Visual Studio.
Para limpar o computador de desenvolvimento
Em a instância de avaliação do Visual Studio, na barra de menu, escolha Ferramentas, Extensões e Atualizações.
a caixa de diálogo de Extensões e Atualizações abre.
Em a lista de extensões, escolha a extensão de Coluna de Site , e então escolha o botão de Desinstalar .
Em a caixa de diálogo que aparece, escolha o botão de Sim para confirmar que você deseja desinstalar a extensão.
Escolha o botão de Fechar para concluir a desinstalação.
Feche as duas instâncias do Visual Studio (a instância de avaliação e instância do Visual Studio em que a solução de SiteColumnProjectItem estiver aberta.)
Próximas etapas
Depois que você concluir essa explicação passo a passo, você pode adicionar um assistente para o modelo de projeto.Quando um usuário cria um projeto da coluna da página, o assistente solicita o usuário a URL do site usar para depurar e se a nova solução na área restrita, e o assistente configura o novo projeto com essas informações.O assistente também coleta informações sobre a coluna (como o tipo base e o grupo para listar a coluna na galeria de colunas de site) e adiciona essa informação para o arquivo de Elements.xml no novo projeto.Para obter mais informações, consulte Passo a passo: Criando um Item de projeto de coluna do Site com um modelo de projeto, parte 2.
Consulte também
Tarefas
Passo a passo: Criando um Item de projeto de coluna do Site com um modelo de projeto, parte 2
Conceitos
Definindo tipos de Item de projeto do SharePoint personalizados
Criando modelos de Item e projeto para itens de projeto do SharePoint
Salvar dados em extensões do sistema de projeto do SharePoint
A associação de dados personalizados com extensões de ferramentas do SharePoint