当我使用msi
编辑msilib
文件,然后将msi
文件移动到另一个目录时,移动命令失败,因为msi
文件仍然打开。我还没有找到任何关闭msilib.OpenDatabase(msifile, MSIDBOPEN_TRANSACT)
打开的msi db的方法。有人可以给我一些帮助吗?
答案 0 :(得分:0)
如果数据库被分配给函数内的局部变量,那么它将在函数返回后关闭:
import msilib
def edit_msi(filepath):
# global db
db = msilib.OpenDatabase(filepath, msilib.MSIDBOPEN_TRANSACT)
# operations on db
# ...
# end of edit_msi()
edit_msi(f)
edit_msi(f) # uncomment 'global db' and this will fail