I see one place in the code not setting the package to be Read-Only (and will b ea 30 second fix), but before I can just send you a DLL, what version are you on? If you are not on 1.7, then me sending you a DLL to try won't work. In this example, you will need to just open the 1.6 SF code, make the change in the EnumDeploymentPackages method, and then use that assembly and then the next update will address this (so you don't have to maintain the source code).
In the DatabaseMigrator class in the DBEngine, the code should look like this to ensure it is opened as Read-Only (EnumDeploymentPackages method):
'-- Establish locals
Dim laReturn As New List(Of DeployDataInfo)
Dim loPackage As New PackageFile()
Dim loRow As DataRow
Dim loItem As DeployDataInfo
Dim loDeployDataDS As DataSet = Nothing
loPackage.FileOpenAccess = System.IO.FileAccess.Read
loPackage.Open(MetaDataPkgPathAndFileName, True, False, PkgPassword)
'-- Iterate through the records in the deployment data of the server and get them
loPackage.ExtractFiles(loPackage.GetIndexesByFilename("DeploymentData.xml"), PackageExtractionType.Relative, GetTemporaryFolder, True)
'-- We're done, so close the package file
loPackage.Close()
Once that change is made, the error should go away. I will make that change on this side, but if you are not on 1.7 then the change will have to be made on your side as well. If you don't get it going, let me know and I will go back in history and get the 1.6.6 build sucked down.