Note that there are some explanatory texts on larger screens.

plurals
  1. POHow can I set up continuous deployment for a SharePoint 2010 Visual Studio solution?
    primarykey
    data
    text
    <p>I want to automatically build .wsp packages and re-deploy them on a staging server after each commit. I know how to setup CruiseControl.Net for continuous integration, but I don't know how to build and deploy the packages. So far I got <a href="https://stackoverflow.com/questions/3726835/how-can-i-build-a-sharepoint-2010-package-using-command-line">MSBuild to generate .wsp files</a> , but I am struggling with a automatic re-deployment script. What I got so far is a PowerShell script:</p> <pre><code>param([string]$siteUrl = "http://machine.local") $ErrorActionPreference = "Stop" function WaitForPendingJob {param ($sol) $counter = 1 $sleeptime = 2 $safeguard = 100 while( $sol.JobExists -and ( $counter -lt $safeguard ) ) { Write-Host -f yellow -NoNewLine "." sleep $sleeptime $counter++ } Write-Host "" } function InstallOrUpdateSolution {param ($SolutionWsp, $SiteUrl, $featureGuid) $FullPath = resolve-path $SolutionWsp $farm = Get-SPFarm $sol = $farm.Solutions[$solutionWsp] if ($sol) { Write-Host -f Green "Going to uninstall $SolutionWsp" if( $sol.Deployed -eq $TRUE ) { Write-Host -f Green "Deactivating feature $featureGuid at $SiteUrl" Disable-SPFeature -Identity $featureGuid -Url $SiteUrl -Confirm:$false -force -ErrorAction Continue Uninstall-SPSolution -Identity $SolutionWsp -WebApplication $SiteUrl -Confirm:$false -ErrorAction Continue Write-Host -f yellow -NoNewLine "waiting for retraction" WaitForPendingJob $sol } Write-Host -f Green "$SolutionWsp is retracted." Write-Host -f Green "Going to Remove $SolutionWsp" Remove-SPSolution -Identity $SolutionWsp -Force -Confirm:$false -ErrorAction Continue Write-Host -f Green $SolutionWsp is deleted from this Farm } Add-SPSolution -LiteralPath $FullPath Install-SPSolution -Identity $SolutionWsp -WebApplication $SiteUrl -GACDeployment -CASPolicies -Force $sol = $farm.Solutions[$SolutionWsp] if ($sol.Deployed -eq $false ) { write-host -f yellow -NoNewLine "waiting for deployment" WaitForPendingJob $sol } Write-Host -f Green $SolutionWsp deployed $sol.Deployed Write-Host -f Green "Activating feature $SolutionWsp at $SiteUrl" Enable-SPFeature -Identity $featureGuid -Url $SiteUrl } function RestartTimer { Write-Host -f Green Restarting OWSTIMER instances on Farm $farm = Get-SPFarm $farm.TimerService.Instances | foreach {$_.Stop();$_.Start();} } $date = Get-Date Write-Host -f Green "Starting upgrade at " $date Add-PsSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue InstallOrUpdateSolution "Solution1.wsp" $siteUrl "2c6ffaf7-84df-465c-be55-8136926d3e02" InstallOrUpdateSolution "Solution2.wsp" $siteUrl "0c6be7af-cccd-4ccd-9b61-deffd16f7830" InstallOrUpdateSolution "Solution3.wsp" $siteUrl "8f4862d3-94ea-467b-bdeb-2352295e08c3" RestartTimer $date = Get-Date Write-Host -f Green "Upgrade finished at" $date </code></pre> <p>This breaks with seemingly random errors, while the deployment from Visual Studio 2010 works every time. How can I deploy the .wsp's from command line in a fail-proof way like the Visual Studio does it?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload