none
Как правильно отключить,отозвать,удалить решение? RRS feed

Ответы

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

    #wait for installing/uninstalling wsp solution timer job finish
    function WaitForJobToFinish([string]$SolutionFileName)
    { 
        $JobName = "*solution-deployment*$SolutionFileName*"
        $job = Get-SPTimerJob | ?{ $_.Name -like $JobName }
        if ($job -eq $null) 
        {
            Write-Host 'Timer job not found'
        }
        else
        {
            $JobFullName = $job.Name
            Write-Host -NoNewLine "Waiting to finish job $JobFullName"
            
            while ((Get-SPTimerJob $JobFullName) -ne $null) 
            {
                Write-Host -NoNewLine .
                Start-Sleep -Seconds 1
            }
            Write-Host  "Finished"
        }
    }
    
    cd WspsLocation
    $rootUrl = "siteUrl"
    
    
    foreach ($package in (Get-ChildItem *.wsp))
    {
    	Write-Host "Processing " $package.Name
    	if ($farm.Solutions[$package.Name] -ne $null)
    	{
    		if ($farm.Solutions[$package.Name].Deployed)
    		{
    			Echo "Uninstalling old wsp..."
    			if ($package.Name.Contains("WebApp"))
    				{Uninstall-SPSolution -Identity $package.Name -WebApplication $rootUrl –Confirm:$False}
    			else
    				{Uninstall-SPSolution -Identity $package.Name –Confirm:$False}
    			WaitForJobToFinish($package.Name)
    		}
    
    		Echo "Removing old wsp"
    		Remove-SPSolution -Identity $package.Name –Confirm:$False
    	}
    
    	Echo "Adding new wsp"
    	$solution = Add-SPSolution $package.FullName –Confirm:$False
    	
    	Echo "Installing new wsp"
    	if ($package.Name.Contains("WebApp"))
    		{Install-SPSolution -Identity $package.Name -WebApplication $rootUrl -GACDeployment –Confirm:$False -Force:$True}
    	else
    		{Install-SPSolution -Identity $package.Name -GACDeployment –Confirm:$False -Force:$True}
    	
    	WaitForJobToFinish($package.Name)
    }


    Высказанное мною здесь - мои личные взгляды, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    • Помечено в качестве ответа zerotoon 16 августа 2012 г. 12:48
    16 августа 2012 г. 11:52
    Модератор

Все ответы

  • Какая версия SP установлена?

    Если 2010, то в CA/System Settings/Manage farm solutions. Там выбираем решение, сначала делаем "Retract Solution" затем "Remove"

    Если 2007, то в CA/Operations/Solution managment. Далее действуем аналогично 2010му

     


    16 августа 2012 г. 8:34
  • Последствия от отключения решения будут в виде отключения функционала, который содержится в этом решении. Вам нужно знать что за функционал в этом решении и оценить последствия его отключения.

    Высказанное мною здесь - мои личные взгляды, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    16 августа 2012 г. 9:28
    Модератор
  • То есть, у меня есть решения допустим некая веб часть.

    Мои шаги.

    1-Дезактивировать фичу на уровне сайта.

    2-Отозвать решение.

    3-Удалить решение.

    Всё верно?


    • Изменено zerotoon 16 августа 2012 г. 10:05
    16 августа 2012 г. 10:00
  • Без первого шага можно обойтись. Вот кусочек скрипта, который я обычно использую для переразворачивания пакетов.

    #wait for installing/uninstalling wsp solution timer job finish
    function WaitForJobToFinish([string]$SolutionFileName)
    { 
        $JobName = "*solution-deployment*$SolutionFileName*"
        $job = Get-SPTimerJob | ?{ $_.Name -like $JobName }
        if ($job -eq $null) 
        {
            Write-Host 'Timer job not found'
        }
        else
        {
            $JobFullName = $job.Name
            Write-Host -NoNewLine "Waiting to finish job $JobFullName"
            
            while ((Get-SPTimerJob $JobFullName) -ne $null) 
            {
                Write-Host -NoNewLine .
                Start-Sleep -Seconds 1
            }
            Write-Host  "Finished"
        }
    }
    
    cd WspsLocation
    $rootUrl = "siteUrl"
    
    
    foreach ($package in (Get-ChildItem *.wsp))
    {
    	Write-Host "Processing " $package.Name
    	if ($farm.Solutions[$package.Name] -ne $null)
    	{
    		if ($farm.Solutions[$package.Name].Deployed)
    		{
    			Echo "Uninstalling old wsp..."
    			if ($package.Name.Contains("WebApp"))
    				{Uninstall-SPSolution -Identity $package.Name -WebApplication $rootUrl –Confirm:$False}
    			else
    				{Uninstall-SPSolution -Identity $package.Name –Confirm:$False}
    			WaitForJobToFinish($package.Name)
    		}
    
    		Echo "Removing old wsp"
    		Remove-SPSolution -Identity $package.Name –Confirm:$False
    	}
    
    	Echo "Adding new wsp"
    	$solution = Add-SPSolution $package.FullName –Confirm:$False
    	
    	Echo "Installing new wsp"
    	if ($package.Name.Contains("WebApp"))
    		{Install-SPSolution -Identity $package.Name -WebApplication $rootUrl -GACDeployment –Confirm:$False -Force:$True}
    	else
    		{Install-SPSolution -Identity $package.Name -GACDeployment –Confirm:$False -Force:$True}
    	
    	WaitForJobToFinish($package.Name)
    }


    Высказанное мною здесь - мои личные взгляды, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    • Помечено в качестве ответа zerotoon 16 августа 2012 г. 12:48
    16 августа 2012 г. 11:52
    Модератор
  • супер, спасибо.
    16 августа 2012 г. 12:48
  • А мусор в конфигурационной базе разве не останется, если удалив решение, фичу не деактивировать? 
    http://blogs.msdn.com/b/kaevans/archive/2011/02/02/sharepoint-don-t-forget-to-uninstall-the-feature.aspx

    Будут ли потом из-за этого проблемы с обновлением 2010 на 2013?
    • Изменено Essentie 25 мая 2015 г. 6:59