Развертывание CSS в SharePoint с помощью PowerShell

В настоящее время я пытаюсь автоматизировать развертывание изменений брендинга на нашем сайте Business Intelligence SharePoint через PowerShell. Я использую следующий код для развертывания WSP в моем локальном экземпляре SharePoint для тестирования.

function Uninstall-AllSPSolutions {
param (
    [switch] $Local,
    [switch] $Confirm
) 

Start-SPAssignment -Global;
foreach($solution in (Get-SPSolution | Where-Object { $_.Deployed })) {
    write-host "Uninstalling Solution " $solution.Name;
    if($solution.DeployedWebApplications.Count -gt 0) {
       Uninstall-SPSolution $solution -AllWebApplications -Local:$Local -Confirm:$Confirm;
    } else {
       Uninstall-SPSolution $solution -Local:$Local -Confirm:$Confirm;
    }
   do {
       Start-Sleep 5;
       $solution = Get-SPSolution $solution;
      } while($solution.JobExists -and $solution.Deployed) 
} 
Stop-SPAssignment -Global;
}

function Remove-AllSPSolutions {
param (
    [switch] $Confirm
) 
Get-SPSolution | Where-Object { !$_.Deployed } | Remove-SPSolution -Confirm:$Confirm
}

echo "Loading Sharepoint Snapin" 
$snapin = Get-PSSnapin | Where-Object { $_.Name -eq "Microsoft.SharePoint.Powershell" }
if ($snapin -eq $null) {
   Write-Host "[INIT] Loading SharePoint Powershell Snapin"
   Add-PSSnapin "Microsoft.SharePoint.Powershell"
}

#Some variables
#Include Url Site
$SITEURL="sharepoint url"
#Include WSP File Path
$WSPFILEPATH="C:\Users\Administrator\Desktop\folder\SharepointDeployer.wsp"
#Include WSP Name
$WSPNAME="SharepointDeployer.wsp" 

echo "Uninstall Solutions"
Uninstall-AllSPSolutions -Confirm
echo "Remove Solutions"
Remove-AllSPSolutions -Confirm

echo Deploy Test solution
echo "1. Add Solution" 
Add-SPSolution $WSPFILEPATH
echo "2. Deploy Solution" 
#Install-SPSolution -identity $WSPNAME -force -AllWebApplications $SITEURL -GACDeployment
Install-SPSolution -identity $WSPNAME -force -AllWebApplications -GACDeployment
echo "2. Enable Feature" 
Enable-SPFeature –Identity "SharepointDeployer Feature1" –url  $SITEURL

Решение развертывается просто отлично, как я вижу в Central Admin, но изменения не вносятся в файлы, когда я смотрю в SharePoint Designer.

Все файлы имеют следующие атрибуты для перезаписи в модуле

IgnoreIfAlreadyExists="true" Type="GhostableInLibrary"

Я попытался поиграть с функцией, чтобы увидеть, есть ли там проблема, вот результаты

Ферма: я не могу создать WSP через Visual Studio. Ошибка: элемент проекта «Имя модуля» не может быть развернут с помощью функции с областью действия фермы.

Сайт: функция не является функцией уровня фермы и не находится на уровне сайта, определенном URL-адресом.

Интернет: то же, что и выше

WebApplication: я получаю ту же ошибку, что и Farm, за исключением того, что там написано WebApplication Scope.

Я не уверен, что мне нужно сделать, чтобы это заработало, так как это должно быть просто (мы говорим о 3 файлах CSS, 2 изображениях и мастер-странице).

Любая помощь могла бы быть полезна.


person Isaac Levin    schedule 13.06.2014    source источник


Ответы (1)


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

  • у вас есть пользовательские изменения. вы развертываете файлы в куст, но ваша виртуальная папка не показывает определения сайта. вы можете добавить в свой сценарий код для возврата ресурсов к определениям сайта, чтобы убедиться, что ваши изменения применяются
  • вы не деактивируете функции. если вы отзовете решение и повторно развернете его, функции не будут обновлены должным образом, и SharePoint, вероятно, решит, что они были активированы все время. вы должны добавить вызов деактивации перед вашим опровержением

хорошо

person Tiago Duarte    schedule 19.07.2014