2
当我使用msilib
编辑msi
文件,然后将msi
文件移动到另一个目录中时,移动命令失败,因为msi
文件仍处于打开状态。我还没有找到任何方法来关闭由msilib.OpenDatabase(msifile, MSIDBOPEN_TRANSACT)
打开的msi数据库。任何人都可以给我一些帮助吗?如何关闭由python msilib打开的msi数据库?
当我使用msilib
编辑msi
文件,然后将msi
文件移动到另一个目录中时,移动命令失败,因为msi
文件仍处于打开状态。我还没有找到任何方法来关闭由msilib.OpenDatabase(msifile, MSIDBOPEN_TRANSACT)
打开的msi数据库。任何人都可以给我一些帮助吗?如何关闭由python msilib打开的msi数据库?
如果数据库被分配到本地变量的函数里面,那么它将在函数返回时关闭:
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