Повторно создать индивидуальный макет страницы без привидения?

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/58314

Вопрос

У меня есть среда разработки, тестовая среда и производственная среда.Я разрабатываю пакеты в среде разработки и обновляю решение в тестовой среде.Как оказалось, мой PageLayout не менялся в зависимости от среды разработки.Я спросил коллегу, что может быть не так, и мы начали расследование.

Как оказалось, PageLayout не менялся и не менялся уже больше года.Но поле TaskDueDate не удалось, поскольку оно было написано на шведском языке.Поскольку это тестовая среда, я изменил поле в конструкторе SharePoint на правильное имя, и страницы, ссылающиеся на PageLayout, начали работать должным образом.

Поэтому мы с коллегой решили повторно перевести PageLayout в состояние Ghosted, чтобы иметь возможность развернуть его из пакета, созданного в нашей среде разработки.Я нашел полезное начало сценария и запустил его, чтобы проверить, что у меня получилось.

$site = Get-SPSite https://intranet.company.se
$web = $site.RootWeb

$pubSite = New-Object Microsoft.SharePoint.Publishing.PublishingSite($site)
$pageLayouts = $pubSite.PageLayouts

foreach ($pageLayout in $pageLayouts)
{        
    $file = $web.GetFile($pageLayout.ServerRelativeUrl)

    if ($file.CustomizedPageStatus -eq "Customized")
    {
        Write-Host "Layout page name: " $file.Name        
        Write-Host "   Status before: " $file.CustomizedPageStatus

        #$file.RevertContentStream()

        Write-Host "    Status after: " $file.CustomizedPageStatus
    }
}

$web.Dispose()
$site.Dispose()

Как оказалось, четыре из 20 макетов страниц были отключены в соответствии с приведенным выше сценарием.Это неожиданно, и я оказываюсь посередине.Должен ли я сохранить текущие UnGhosted PageLayouts в качестве резервной копии, повторно разместить их и посмотреть, что произойдет, или мне следует оставить их в режиме UnGhosted (неразвертываемом)?

Это было полезно?

Решение

Если это происходит исключительно в тестовой среде, а не в производственной среде (отсюда и «тест»), вы можете безопасно вернуть файловый поток, чтобы содержимое было получено из файловой системы.

Поскольку существует только 4 макета страниц, не размещенных на хосте, вы можете получить их из галереи главных страниц («загрузить копию») в этой среде и применить сравнение с тем, который есть в ваших пакетах, чтобы синхронизировать их и применить соответствующие изменения (если таковые имеются) в вашей среде разработки/пакете.(BeyondCompare — действительно хороший инструмент для этого, но их много).

А как насчет производственной среды?Есть ли у него неразмещенный/настраиваемый макет страницы?Смогли бы вы выполнить ту же операцию (запустить сценарий PowerShell), если бы это было так?

Наконец-то старое доброе stsadm -o backup поскольку безопасная сеть всегда приветствуется, на случай, если произойдет что-то плохое (невозможно вернуть файловый поток, отсутствующий контент, добавленный вручную, сломанный макет страницы и т. д.).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top