我正在使用Wix来监听应用程序和服务,我希望更改msi表(session.database)中的值。
我尝试使用自定义操作来完成此操作,我可以使用select语句从表中选择值,但是如果我尝试插入,设置将失败。
我的代码:
[CustomAction]
public static ActionResult MyCustomAction1(Session session)
{
ServiceController serviceController = new ServiceController(serviceName);
//-----Works fine-----
res=session.Database.ExecuteIntegerQuery("select ServiceType from ServiceInstall where StartType=4");
//----Makes the setup fail
session.Database.Execute("insert into ServiceInstall (ServiceInstall) values ('a')");
return ActionResult.Success;
}是否可以使用自定义操作插入值?
谢谢
谢谢你‘我已经尝试过了:session.Database.Execute(“插入到ServiceInstall (名称)值('ezm')临时”);
但我得到了后续异常: exception:函数在执行过程中失败。数据库:表更新失败。
发布于 2012-02-12 19:41:21
只能在安装时将临时数据插入MSI数据库。这里有一个特殊的语法- INSERT INTO {table} ({column-list}) VALUES ({constant-list}) [TEMPORARY]。注意最后一个词--尽管它是可选的,但如果您试图插入来自自定义操作的数据,则必须存在它。
https://stackoverflow.com/questions/9248727
复制相似问题