Yes, but this assumes that you want to delete the old solution file(s). It seems a better practice to me to have a new version in its own directory/folder in case the user, for whatever reason, wants to use the old version of the solution. In that case it would be best to import the old data into the new solution files. I suppose you could have the user copy/duplicate the current solution directory and rename it as "Old Version", then place the new clone file(s) into the existing directory and let the clone files do their thing.
Your method is definitely a good one. By having a defined directory where all files and sub-directories are known by the solution in terms of name and location, scripts can be made not to break. I'm just trying to decide how I want the user to "touch" this upgrade process.