【发布时间】:2016-02-25 02:11:59
【问题描述】:
我正在尝试向我的 CustomActions 表中添加一个新的自定义操作。问题是如果我用 orca 打开它,msi 中没有自定义操作表。所以在插入表之前我应该创建表和然后插入。
如何通过c#代码在msi中创建新表CustomAction
如果表已经存在,我可以正确添加。有没有办法在 msi 中激活具有预定义定义的自定义操作表。
检查表是否存在的代码是这样的
if (db3.TablePersistent["CustomAction"].ToString() == "msiEvaluateConditionTrue")
{
string query = "INSERT INTO CustomAction (Action,Type,Source,Target) VALUES ('" + name + "'," + type + ",'" + source + "','" + target + "')";
Console.WriteLine(query);
vw3 = db3.OpenView(query);
vw3.Execute(null);
db3.Commit();
vw3.Close();
}
如果表不存在,我的疑问是如何创建表。或者是否有一些直接的方法来启用这些表。工具 Orca 中有一个选项可以激活表,如果它在数据库中不持久。
【问题讨论】:
-
您是否创建了此 MSI?如果是这样,使用哪个工具?
-
如果您使用 WiX 创建 MSI,请使用 EnsureTable 元素。
标签: c# mysql wix windows-installer