After downloading Site solution file, I have done some modification be changing the .wsp to .cab file and extracted all the files in a folder.
After modification, I tried to restore as wsp file. It started throwing error.
After googling I found this excellent link showing that how we can create wsp file from file/folder using PowerShell
$destWSPfilename = "<Path where you want to save wsp file>\<filename.wsp>"
$sourceSolutionDir = [System.IO.DirectoryInfo]"<Source from where you are retrieving file>"
$a = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
$ctor = $a.GetType("Microsoft.SharePoint.Utilities.Cab.CabinetInfo").GetConstructors("Instance, NonPublic")[0]
$cabInf = $ctor.Invoke($destWSPfilename );
$mi = $cabInf.GetType().GetMethods("NonPublic, Instance, DeclaredOnly")
$mi2 = $null
foreach( $m in $mi ) {
if( $m.Name -eq "CompressDirectory" -and $m.GetParameters().Length -eq 4 ) {
$mi2 = $m;
break;
};
}
$mi2.Invoke($cabInf, @( $sourceSolutionDir.FullName, $true, -1,$null ));
After modification, I tried to restore as wsp file. It started throwing error.
After googling I found this excellent link showing that how we can create wsp file from file/folder using PowerShell
$destWSPfilename = "<Path where you want to save wsp file>\<filename.wsp>"
$sourceSolutionDir = [System.IO.DirectoryInfo]"<Source from where you are retrieving file>"
$a = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
$ctor = $a.GetType("Microsoft.SharePoint.Utilities.Cab.CabinetInfo").GetConstructors("Instance, NonPublic")[0]
$cabInf = $ctor.Invoke($destWSPfilename );
$mi = $cabInf.GetType().GetMethods("NonPublic, Instance, DeclaredOnly")
$mi2 = $null
foreach( $m in $mi ) {
if( $m.Name -eq "CompressDirectory" -and $m.GetParameters().Length -eq 4 ) {
$mi2 = $m;
break;
};
}
$mi2.Invoke($cabInf, @( $sourceSolutionDir.FullName, $true, -1,$null ));
when i create .wsp package using above script, i got error at the time of deployment manifest.xml missing.
ReplyDelete