Tag Info

The so-called "best practice" from MSoft is called "remote provisioning". This is basically using CSOM (or JSOM) to provision the site structure. Any environment that allows REST access and the proper permissions can be used to do this, including ConsoleApp, PowerShell, Javascript, provider-hosted app, et.al.
I learned about this in the excellent MVA course ...

I think I had success with this by using the Overwrite=True attribute (https://msdn.microsoft.com/en-us/library/office/aa544268.aspx).
Also I believe once the content type is in use in a list instance it might be blocked from being removed. Try deleting the instance and then clearing it from both the first stage and second stage recycle bin then ...

Can you try this:
Go to Central administration -> Application Management-> Database -> Manage Content Database. Select the required web application and click on Add Content Database. Give the name to this database.
Now restore the site collection to this database using Restore PowerShell Command:
Restore-SPSite http://sitename/sites/site_name -Path ...

Deactivate your features and delete the pages. Reactivate the features and they'll be provisioned again.
My rule of thumb was if I was deploying assets, I had feature deactivation code to delete them. This made rapid development deployment possible by right clicking deploy in VS. The feature would retract, delete the deployed assets, be removed form the ...