The latest delivery of the SCORM Engine makes versioning very simple.
Directly importing over the top of a package and overwriting its information could cause many issues. There could have been substantial changes to the structure or other parts of the course that could cause numerous headaches. Because of this, on import, if the package already exists, it will update the versionid, for example, if you have a package that has courseid of 1 and versionid of 0, and you re-import that course, then the courseid would remain 1 while the versionid would update to 1. The new course will share some of the original identifiers, but will still be its own course.
When launching these updated courses there is a setting in the SCORMEngineSettings.config file that will control which version of the package will launch. Here is what it looks like:
<!-- REGISTRATION RESTART
1 = "never":
2 = "when existing registration is complete and newer package version exists"
3 = "when newer package version exists"
4 = "when existing registration is complete"
5 = "when existing registration is satisfied"
6 = "when existing registration is satisfied and newer package version exists"
<add key="WhenToRestartRegistration" value="2" />
<add key="IsPackageVersioningEnabled" value="true"/>
Registration Restart describes what is going to happen to existing registrations of packages when they are updated. The values are then placed in the "WhentoRestartRegistration" key. Once you are happy with that, you can update "IsPackageVersioningEnabled" to 'True'...restart IIS (or open the web.config file, then save it...a good trick if you do not want to bounce IIS) and then you should be good to go.
This functionality is included with all releases of SCORM Engine 2008.1. Please let us know if you have any questions!