سلام دوستان
حتماً برای شما هم اتفاق افتاده که نیاز به جمع آوری یا Extract کردن Solution های Deploy شده در یک فارم شرپوینت و انتقال آنها به فارم جدید داشته باشید. این موضوع زمانی اهمیت پیدا میکند که فایل اصلی Solution های Deploy شده یا همان فایل WSP را در اختیار نداشته باشید و پس از جابه جایی فارم، نیاز به نصب این Solution ها در فارم جدید باشد.
برای اینکار شما با استفاده از دستورات PowerShell زیر می توانید به راحتی تمام سولوشن های یک فارم را از دل فارم بیرون بکشید و به فارم جدید منتقل و در آنجا Deploy کنید.
۱- Extract کردن سولوشن ها از فارم فعلی :
از هر دو دستور زیر میتوانید برای Extract کردن سولوشن ها استفاده کنید. فایلهای WSP دریافتی در محل فعلی که دستور از آنجا اجرا میشود ذخیره میشود.
دستور اول :
(Get-SPFarm).Solutions | ForEach-Object{$var = (Get-Location).Path + “\” + $_.Name; $_.SolutionFile.SaveAs($var)}
دستور دوم :
$dirName = “$(pwd)” Write-Host Exporting solutions to $dirName foreach ($solution in Get-SPSolution) { $id = $Solution.SolutionID $title = $Solution.Name $filename = $Solution.SolutionFile.Name Write-Host “Exporting ‘$title’ to …\$filename” -nonewline try { $solution.SolutionFile.SaveAs(“$dirName\$filename”) Write-Host ” – done” -foreground green } catch { Write-Host ” – error : $_” -foreground red } }
۲- Import کردن سولوشن ها به فارم جدید :
Get-ChildItem | ForEach-Object{Add-SPSolution -LiteralPath $_.Fullname}
۳- Deploy کردن تمام سولوشن ها در فارم جدید :
Get-SPSolution | ForEach-Object {If ($_.ContainsWebApplicationResource -eq $False) {Install-SPSolution -Identity $_ -GACDeployment} else {Install-SPSolution -Identity $_ -AllWebApplications -GACDeployment}}
توجه داشته باشید که در دستورات فوق کلیه فایل ها در محل فعلی فایل سیستم که در آن قرار دارید ذخیره و از آنجا خوانده میشوند و اگر نیاز به ذخیره در محل دیگری داشته باشید می توانید آدرس آنرا در دستورات فوق مستقیم اصلاح کنید.
موفق باشید.