Pergunta

Eu tenho uma lista com o tipo de conteúdo nele.Estou tentando adicionar um campo para este tipo de conteúdo para que eu possa usá-lo na biblioteca.Aqui eu adicionei Elements.1.0.0.1.xml ficheiro de Tipo de Conteúdo:

    <?xml version="1.0" encoding="utf-8" ?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
     <Field ID="{63F353F8-F206-4BB0-A3C1-1B8FA9E43C63}" DisplayName="Dull field" Name="DULLfield" Type="Text" Group="RM" Overwrite="TRUE" />
    </Elements>

Então eu adicionei Ação de Atualização para Feature.Template.xml:

    <UpgradeActions>
    <VersionRange BeginVersion="0.0.0.0" EndVersion="10.0.0.0">
      <ApplyElementManifests>
        <ElementManifest Location="MyContentType\Elements.1.0.0.1.xml"/>
      </ApplyElementManifests>
      <AddContentTypeField ContentTypeId="0x0120D520005C2CAF72F4414435A29E0ACDC59F28D9" FieldId="{63F353F8-F206-4BB0-A3C1-1B8FA9E43C63}" PushDown="TRUE"/>
    </VersionRange>
  </UpgradeActions>

Então eu executar o seguinte script sem erros ou avisos:

    Update-SPSolution -Identity sharepointproject1.wsp -LiteralPath  "C:\SharePointProject1.wsp" -GA
CDeployment

Agora eu posso ver o novo campo em Colunas de Site, mas não no Tipo de Conteúdo.Eu suponho PushDown="TRUE" parâmetro para adicionar novo campo a um tipo de conteúdo, mas ele não.O que vou perder?

======== Update ======== Solução implantada com a Versão = 1.0.0.0, em seguida, mudou a Versão 2.0.0.0, Publicar WSP arquivo para o disco local, execute o Update-SPSolution.Quando eu chegar em Solução de versão via PowerShell

$f = Get-SPFeature | where{$_.DisplayName -eq '
myfeature'}
$f.version 

Ainda 1.0.0.0.Eu abri wsp feature.xml arquivo dentro do arquivo wsp - ele tem a versão correta 2.0.0.0

O que vou perder?

Foi útil?

Solução 2

Eu finalmente tenho a atualização do feito.Aqui está uma lista de ações e continuei:

1.Atualização spsolution (.arquivo wsp):

   Update-SPSolution -Identity SharePointProject58.wsp -LiteralPath "<Path>" -GACDeployment

2.Recurso de atualização:

    $feature = $web.Features | where{$_.Definition.DisplayName -eq '*myfeature*'} 
$feature.Upgrade($true)

E o mais importante:Você precisa reiniciar o console, depois toda vez que você atualizar solução, caso contrário, ele adere a versão antiga!Aqui está uma boa artigo sobre o assunto.

Outras dicas

Dar o controle de versão para o recurso, i.é.VersionRange de identificação, em seguida, retire do VersionRange o BeginVersion propriedade.

Exemplo:

<Feature xmlns="http://schemas.microsoft.com/sharepoint/" Version="10.0.0.0">
  <UpgradeActions>
    <VersionRange EndVersion ="10.0.0.0">
      <ApplyElementManifests>
        <ElementManifest Location="MyContentType\Elements.1.0.0.1.xml"/>
      </ApplyElementManifests>
      <AddContentTypeField ContentTypeId="0x0120D520005C2CAF72F4414435A29E0ACDC59F28D9" FieldId="{63F353F8-F206-4BB0-A3C1-1B8FA9E43C63}" PushDown="TRUE"/>
    </VersionRange>
  </UpgradeActions>
</Feature>

Espero que ajude.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top