For some reason, when I create new update packages (release build in VS), the update packages are not removing old items. Where I've noticed this specifically is with templates.

Before updates:
Email Form (template) has an "Email Validation" group containing a field called "Banned Domains" which is a csv list of email domains to not accept submissions from and some other fields.

I decided to move this field to a central setting so that you didn't have to config/update each form separately so...
After updates:
Email Form (template) has an "Email Validation" group containing everything but that list of "Banned Domains".

After building using the release config, I take the resulting update package and apply it, but it doesn't remove the "Banned Domains" field from the template on the applied server as I expected. I have to manually remove it.

What might I be doing wrong? Is there a config for TDS I need to tweak? I'm a newbie with TDS. I inherited it from the company that setup our enviro, so please forgive me if this is a "stupid" question.

3 Answers 3


Update packages do not remove items. Only updates and inserts are performed. If you want to remove items you will need to create a post installation step that would do the work.

You can learn more about post installation steps here. https://www.teamdevelopmentforsitecore.com/Blog/creating-tds-custom-post-deploy-step

  • If a parent item is set to KeepAllChildrenSynchronized then deletes are performed after installation. If a template or field is failing to delete it’s likely because there is a linked item.
    – jrap
    Commented Apr 14, 2019 at 16:35
  • There are several baked-in post deploy actions that are not well documented- one of which is to perform this style of deletes. The connector method and update package are supposed to have feature parity and I know a simple action like a delete is included in that parity. What’s more important is the version of TDS being used and the method used for installation, neither of which was explained.
    – jrap
    Commented Apr 14, 2019 at 16:38

We have seen this specific issue crop up, but only in the templates section. There is some limitation related to the templates area specifically where Sitecore does not respect the KeepAllChildrenSynchronized setting when applying changes.

To resolve this for templates, we had to add a step to our deployment process where we deleted all of our (custom) templates before installing the .update package. The only way we could do this (with so many items using those templates) was using dbbrowser.aspx:

DB Browser photo


TDS Update Packages do perform deletes. Update packages have feature parity with the connector method (i.e. when you sync from Visual Studio)... anything you can do from Visual Studio is possible with Update Packages.

If a parent item is set to KeepAllChildrenSynchronized, then in Visual Studio you would see a changed/deleted/added item beneath said parent. The same is true for update packages. Therefore, if you remove an item and then create an update package it will attempt to delete it.

The Caveat

As @Dan Sinclair mentioned, this doesn't always work with templates. Just like with Content Editor, you cannot delete a template that has existing items using that template. The same is true for update package installations. You would first need to delete any items associated with that template, then the update package would perform the deletion of the template (again, assuming the parent is set to KeepAllChildrenSynchronized).

Your Answer

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

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