将 MSI 属性传递给 sqlstring

Posted

技术标签:

【中文标题】将 MSI 属性传递给 sqlstring【英文标题】:Passing MSI properties to sqlstring 【发布时间】:2020-08-14 12:18:12 【问题描述】:

您好,我正在尝试将 MSI 属性传递给 Sqlstring

下面是我的代码。属性 GROUP 在开头由 MSI 设置,我需要将其传递给 Sql Query 。当我阅读其中一个答案时,我尝试将 [ and ] 替换为 [\[] and [\]] ,但是在运行 MSI 时仍然出现以下错误。我是WIX 的新手,我们将不胜感激。

enter image description here

<sql:SqlString Id="SuperUser" ExecuteOnInstall="yes" ContinueOnError="no"  
SQL="IF NOT EXISTS(SELECT TOP 1 * FROM [Interface].[dbo].[user] A WHERE A.default_user = 1)
BEGIN

       INSERT INTO [Interface].[dbo].[user](staff_id, staff_name, status, default_user)
       VALUES('ab', 'ab', 'A', 1)

       INSERT INTO [Interface].[dbo].[rights](staff_id, role, role_n, name, enable)
       VALUES('ab', 6, 'admin', '[GROUP]', 'E')
END"/>

【问题讨论】:

【参考方案1】:

这不是 MSI 错误,这是 SQL 错误。阅读说明。 “'(' 附近的语法错误。我正在计算你语句中的括号,看起来你缺少一个结束 ')'

【讨论】:

有5个左括号和5个右括号,相同的脚本独立执行时可以正常工作 啊,好的。我认为这是我的滚动问题。但是,该错误仍然是 SQL 错误。

以上是关于将 MSI 属性传递给 sqlstring的主要内容,如果未能解决你的问题,请参考以下文章

如何将参数从exe文件传递到msi?

将参数从bootstrapper传递到msi bundle包

WiX - 将参数从 MSI 传递到 Xeam 引导程序应用程序

OOP:将对象与将属性传递给方法

将 JSON 数据从 php 传递给 html-data 属性,然后传递给 Javascript

将 uint 属性传递给 GLSL