Wenn im Rahmen eines Projektes Anzeigevorlagen (DisplayTemplates) und Ergebnistypen (ResultTypes) erstellt werden, müssen die Ergebnistypen immer wieder aktualisiert werden.
Die entsprechende Meldung stellt sich so dar:

Viele Projekte erschweren sich das Leben, indem dieser Schritt immer manuell vollzogen werden muss – auch wenn der Rest automatisiert ist.
Das aktualisieren ist eigentlich (on premises) kein Hexenwerk: Set-SPEnterpriseSearchResultItemType kann verwendet werden um die DisplayProperties zu aktualisieren.
Ich habe ein Skript erstellt, mit dem alle ResultTypes automatisch aktualisiert werden können:
<# | |
.SYNOPSIS | |
Updates the DisplayProperties of the ResultItemTypes. | |
.Notes | |
This script currently only updates Site-Level-ResultTypes. | |
.Example | |
Update-ResultItemTypesProperties -SiteUrl https://my.sharepoint.com/sites/search | |
Updates DisplayProperties of all non builtin ResultTypes | |
#> | |
[CmdletBinding()] | |
param( | |
[Parameter(Mandatory=$true)] | |
[string]$SiteUrl | |
) | |
$ErrorActionPreference="Stop" | |
$site = Get-SPSite $SiteUrl | |
$ssa = Get-SPEnterpriseSearchServiceApplication | |
$owner = Get-SPEnterpriseSearchOwner -Level SPSite -SPWeb $site.RootWeb | |
# TODO: Ssa and SPWeb are also possible locations for owner... | |
$masterPageGallery = $site.GetCatalog("MasterPageCatalog") | |
$resultTypes = Get-SPEnterpriseSearchResultItemType -Owner $owner -SearchApplication $ssa | ? { -not $_.Builtin } | |
$resultTypes | % { | |
Write-Verbose "Processing: $($_.Name)" | |
$displayTemplateFileName = Split-Path -Path $_.DisplayTemplateUrl -Leaf | |
$displayTemplate = $masterPageGallery.Items | ? {$_.Name -eq $displayTemplateFileName} | |
$propPairs = $displayTemplate[[guid]"a0dd6c22-0988-453e-b3e2-77479dc9f014"]; | |
$propsString = "" | |
if(-not [string]::IsNullOrWhiteSpace($propPairs)){ | |
$props = $propPairs.Split(",") | %{ $_.Split(":") | Select -Last 1 } | %{ $_.Trim("'") } | |
$propsString = [string]::Join(",", $props) | |
} | |
if($_.DisplayProperties -eq $propsString) { | |
# match | |
return; | |
} | |
Set-SPEnterpriseSearchResultItemType -Identity $_ -Owner $owner -SearchApplication $ssa -DisplayProperties $propsString | |
} |
Mikael Svenson hat dazu auch einen c# Schnipsel veröffentlicht, der die entsprechende Aktualisierung durchführt. Dieser kann z.B. in einem FeatureReceiver verwendet werden.