I am using a feature (with feature receiver) to create some lists by code on "my site". The feature is site scoped and is activated by a farm scoped feature (using feature stapling) when a new my site is created.

So far, so good, but... When I edit the code in the feature receiver to add some more functionality, and upgrade the .wsp which holds the feature, the upgrade does not seem to work.

The feature is activated automatically when a new my site is created, but executes the old code. If I deactivate the feature and then activate the feature manually then the new code is executed.

I am having problems understanding this behavior. Any similar experience? Any ideas how to fix this ?

  • 2
    That is expected and in line with all the features I had created, the enabled feature needs deactivated and activated to pick up the change. – Eric Alexander Feb 12 '15 at 17:55
  • Yeah, but my problem is that it happens on newly created "my sites" also (which are newly created site collections). I understand that a re-activation is needed on existing site collection where the feature is already activated, but not why it is not activating with new code on newly created site collections that are created after the .wsp-update. – Ilyas Feb 12 '15 at 17:58
  • 2
    have you recycled iis and the v4 timer service? – Eric Alexander Feb 12 '15 at 18:02
  • Yes, I have even restarted the server, retracted the solution and re-deployed it. – Ilyas Feb 12 '15 at 18:03
  • The recycling of timer service did the trick. Thanks a lot. I was impatient in my earlier tries. – Ilyas Feb 16 '15 at 21:37

We had the same problem couple of months ago, after digging too much we open a MSFT case. Here how we solve it.

  • After updating the wsp, we check if new dll deployed.
  • We also check if updated DLL loaded
  • Recycle the SharePoint timer services on all servers.
  • We use the decompiler tool to find which assembly loaded.

In our case, even after updating( many time retracting and re deploying) still old DLL loading. so once we recycle the timer services new DLL loaded.

| improve this answer | |
  • 1
    Thanks!! :). This solved my problem. It is the same approach PirateEric suggested. I thought I had tried it properly, but I hadn't. When I tried again more patiently, it worked. – Ilyas Feb 16 '15 at 14:05

In most common cases you forgot to close the current powershell. This holds the old assembly in the memory. After adding and installing your feature, you MUST close the powershell. Reopen it and execute your activation. Now you het your right assembly used.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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