Previously in the part-1 and part-2, we discuss the problem to create installation package in a complex project. We choose to use Nuget package instead of creating MSI, as Nuget implements OPC and very close to developer activities. Moreover it still serve our purpose to create versioned package, where version number of the installation package is embedded in the package itself.
In this part, I continue to provide an example to package SharePoint Solution (WSP) into an installation package.
The objective is to handle delivery of SharePoint Solution (WSP) including any automation script as one of component in installation package. We agree to use Nuget package format for both component package and installation package.
The basic process is simple. Basically you just need to download Nuget.exe and create nuspec file. Nuspec file is Nuget package definition which will define the content of the nugget package. For more details on how to create and publish a nugget package, please read Creating and Publishing a Package document here.
Component Package .Nuspec
Content of component package is SharePoint Solution WSP. The important things to define in .nuspec file for SharePoint Solution component is that it will contains *.wsp file. Following example shows how the files section in .nuspec for SharePoint Solution will looks like.
<file src=“*.wsp“ target=“Delivery\SharePoint\Solutions” />
Installation Package .Nuspec
The main goal for Installation Package .nuspec is to define list of all components used to build the complete installation delivery. It is also the container to put all additional documentation in regards with installation, integration and testing of the release. This package is also acting as entry point to collect all other components, tools for the delivery.For more information about Specifying Dependencies, please read this documentation.
Following example shows how main consent of installation package .nuspec
<dependency id=“SharePointSolutionPkg“ />
When you deliver the Installation Package, and use Nuget.exe to download from repository. The dependencies tree in Installation Package will trigger the download of all other component. In this case we can see that it should download SharePointSolutionPkg.
In case our Installation Package defines other dependencies, all other dependencies will be downloaded and extracted as well.