我的程序很简单。
我想通过这种特定方法实现的目标-
我正在使用Microsoft.Deployment.WindowsInstaller
来读取MSI文件并创建MST。
在以下代码部分中失败:
count = (int)database.ExecuteScalar("SELECT COUNT(*) FROM Shortcut");
....
database.Execute("DELETE FROM Shortcut WHERE `Shortcut`.`Target` LIKE '%.chm'");
Console.WriteLine("chm deleted");
我得到的错误是:
未处理的异常:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException:SQL查询语法无效或不受支持。
有人可以帮我吗?
答案 0 :(得分:1)
Windows Installer SQL与完整的SQL不同-它是一个子集,某些操作无效。例如,使用Select Count(*)在我的测试中不起作用,因此可能需要遍历它们。同样,可能不支持“喜欢”。
答案 1 :(得分:0)
在线 :正如Phil所言, MSI SQL语法是普通SQL的子集。 You can find information on the MSI SQL syntax online here。
脱机 :您还可以找到 msi.chm
帮助文件(Windows Installer SDK)中描述的MSI SQL Syntax
)(随Windows SDK
或WiX toolset
(download
)一起安装。
只需在磁盘上搜索帮助文件-如果已安装 WiX ,就可以在WiX安装文件夹中找到它。后者可能比搜索SDK文件夹更快,更容易。