本文介绍了更新MST数据库时出错 - 请协助的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Hello Guys,



尝试通过转换(MST)文件更新MSI数据库。使用下面的代码。

[code]



WindowsInstaller.Installer inst =(WindowsInstaller.Installer)new Installer();



数据库instDb = inst.OpenDatabase(MSIFile.FullName,WindowsInstaller.MsiOpenDatabaseMode.msiOpenDatabaseModeReadOnly);



instDb.ApplyTransform( MSTpath,MsiTransformError.msiTransformErrorViewTransform);



WindowsInstaller.View view1 = instDb.OpenView(INSERT INTO`Registry`(`Registry`,`Root`,`Key` ,`Name`,`Value`,`Component_`)VALUES('+ Registry1 +','+ Root +','+ Key +','+ Name1 +','+ Value1 +','+ Component +'));





view1.Execute(null);



view1.Close();

instDb.Commit();

[/ code]





当我在包含instDb.ApplyTransform(MSTpath,MsiTransformError.ms)之前尝试MSI数据库时iTransformErrorViewTransform);



它适用于MSI,价值在MSI数据库中更新,

但我在上面的行中遇到错误代码



我错过了什么吗?请协助。

解决方案

Hello Guys,

Am trying to update the MSI database via a transforms (MST) file. using below code.
[code]

WindowsInstaller.Installer inst = (WindowsInstaller.Installer)new Installer();

Database instDb = inst.OpenDatabase(MSIFile.FullName, WindowsInstaller.MsiOpenDatabaseMode.msiOpenDatabaseModeReadOnly);

instDb.ApplyTransform(MSTpath, MsiTransformError.msiTransformErrorViewTransform);

WindowsInstaller.View view1 = instDb.OpenView("INSERT INTO `Registry`(`Registry`,`Root`,`Key`,`Name`,`Value`,`Component_`) VALUES('" + Registry1 + "', '" + Root + "', '" + Key + "', '" + Name1 + "', '" + Value1 + "', '" + Component + "')");


view1.Execute(null);

view1.Close();
instDb.Commit();
[/code]


When i try for MSI database before including instDb.ApplyTransform(MSTpath, MsiTransformError.msiTransformErrorViewTransform);

it worked fine for MSI, the values got updated in the MSI database,
But i face error in the above line of code.

Am i missing something ? please assist.

解决方案


这篇关于更新MST数据库时出错 - 请协助的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-23 15:51