I created a site definition to use as the base for project workspaces. I then staple features to the definition as needed. In one of the features I instantiate lists and document repositories. I now have the requirement to add an additional instance of a document repository.

Adding the provisioning of the list to the definition isn't a problem, and understand the existing sites will need to be brought up to date manually.

What I would like to be able to do is update the feature I have stapled, redeploy, deactivate on each site and then reactivate to have the site operate with the new feature. But from the experiments I've done and the articles I've been reading, it just doesn't seem to work that way.

I could change the feature to instantiate the lists in a feature reciever only if they do not currently exist, but I would like to keep it in CAML if I can as that is easier to see what is going on from the project level view of the solution.

This is getting fairly close to a best practices question, but what steps should I go thru to accomplish the above? What pitfalls should I be aware of while doing it?


1 Answer 1


By using feature upgrade you can use UpgradeActions in your feature manifest to apply a manifest for upgrade only. You can also define code that is triggered in a FeatureUpgrade event.

Check out Chris O'Brien's article series here.

  • That's of course for SP2010+.
    – Alex Angas
    Apr 15, 2011 at 3:28
  • ah yeah. Tagging version should be mandatory ;-) Apr 15, 2011 at 6:42
  • ha ha!
    – Alex Angas
    Apr 15, 2011 at 21:26
  • ha ha! :)
    – Alex Angas
    Apr 15, 2011 at 21:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.