AddContentTypeField - 필드를 콘텐츠 유형에 추가 할 수 없습니다
-
29-09-2020 - |
문제
콘텐츠 유형이있는 목록이 있습니다.이 콘텐츠 유형에 필드를 추가하려고하고 있으므로 라이브러리에서 사용할 수 있습니다. 여기에 요소가 추가되었습니다 .1.0.0.1.xml 파일을 콘텐츠 유형에 추가합니다.
<?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>
.
그런 다음 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>
.
오류나 경고없이 다음 스크립트를 실행합니다.
Update-SPSolution -Identity sharepointproject1.wsp -LiteralPath "C:\SharePointProject1.wsp" -GA
CDeployment
.
이제 사이트 열의 새로운 필드를 볼 수 있지만 내 콘텐츠 유형에는 사용할 수 없습니다.PushDown="TRUE"
매개 변수가 새 필드를 콘텐츠 유형에 추가해야하지만 그렇지 않습니다.내가 뭘 그리워 하는가?
======== update======== 배포 된 솔루션 버전= 1.0.0.0을 사용한 다음 버전을 2.0.0.0으로 변경하고 WSP 파일을 로컬 디스크에 게시하고 업데이트 spsolution을 실행하십시오.PowerShell
를 통해 솔루션 버전을 얻는 경우$f = Get-SPFeature | where{$_.DisplayName -eq '
myfeature'}
$f.version
.
여전히 1.0.0.0입니다. WSP 파일 안에 WSP Feature.xml 파일을 열었습니다. 올바른 버전 2.0.0.0
나는 무엇을 놓친가?
해결책 2
마침내 업그레이드가 완료되었습니다.다음은 내가 진행 한 행동 목록이 있습니다.
1.WSP 파일 (.wsp 파일) :
Update-SPSolution -Identity SharePointProject58.wsp -LiteralPath "<Path>" -GACDeployment
.
2.Upgrade 기능 :
$feature = $web.Features | where{$_.Definition.DisplayName -eq '*myfeature*'}
$feature.Upgrade($true)
.
및 가장 중요한 부분 : 솔루션을 업데이트 할 때마다 콘솔을 다시 시작해야합니다. 그렇지 않으면 오래된 버전에 스틱합니다! 기사 <./ a> 주제에.
다른 팁
기능, 즉 VersionRange ID를 버전에 제공 한 다음 BeginVersion 속성 버전을 제거합니다.
exemple :
<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>
.
그것은 도움이되기를 바랍니다.