gpt4 book ai didi

c# - 如何将值插入 msi 表

转载 作者:行者123 更新时间:2023-11-30 18:01:19 26 4
gpt4 key购买 nike

我正在使用 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("insert into ServiceInstall (Name) values ('ezm') TEMPORARY");

但我得到以下异常:异常:函数在执行期间失败。数据库:表更新失败。

最佳答案

您只能在安装时将临时数据插入 MSI 数据库。这有一个特殊的语法 - INSERT INTO {table} ({column-list}) VALUES ({constant-list}) [TEMPORARY]。注意最后一个词 - 虽然它是可选的,但如果您尝试从自定义操作插入数据,则它必须存在。

关于c# - 如何将值插入 msi 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9248727/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com