SharePoint 2007 administrators often face challenges when upgrading solutions. In response to these difficulties, a new stsadm command called smartsolutionupgrade
has been introduced in the Trentacular SharePoint 2007 Features CodePlex project. This command streamlines the solution upgrade process while maintaining feature activation and deployment states.
Smart Solution Upgrade Workflow
The smartsolutionupgrade
command intelligently upgrades solutions by performing the following actions:
- Input: Accepts a single solution filename or a text file containing a list of solutions to be upgraded.
- Manifest Extraction: Extracts and parses the solution manifest file from each existing solution to determine the features affected by the upgrade.
- Deployment State Inventory: Records the deployment states of all existing solutions.
- Feature Activation State Inventory: Records the activation states of all affected features at every scope within the SharePoint farm.
- Feature Deactivation: Deactivates all affected features.
- Solution Retraction: Retracts each existing solution and deletes them from the solution store.
- Updated Solution Addition: Adds the updated solution to the solution store.
- Upgraded Solution Deployment: Deploys each upgraded solution according to their previous deployment state.
- Feature Reactivation: Activates all affected features according to their previous activation state.
To execute the smartsolutionupgrade
command, use the following syntax:
stsadm -o smartsolutionupgrade [-filename <Solution filename>] [-filenamelist <Path to text file containing each of the solution filenames on separate lines>]
Tackling Web Configuration Modification Issues
Another challenge faced by SharePoint administrators is the “A web configuration modification operation is already running” error. This error occurs when executing the stsadm -o activatefeature
command on features that perform web configuration modifications in quick succession.
To address this issue, the Job Definition Executor has been introduced. This executor runs one-time scheduled service jobs and waits for their completion before releasing control. It ensures that multiple web configuration modification features can be executed sequentially without encountering errors.
An additional stsadm command called smartexecjobdefs
has been released, which wraps the Job Definition Executor and can be used as a substitute for the execadmsvcjobs
command.