【问题标题】:InstallShield 2010 SQL Script multi line comment bug?InstallShield 2010 SQL Script 多行注释错误?
【发布时间】:2011-07-14 11:11:37
【问题描述】:

我想我在 InstallShield 2010 中发现了多行 cmets 和 SQL 脚本的错误。

要重现该错误,请创建一个基本的 MSI 项目。转到 Installation Designer -> SQL Scripts,创建一个 SQL 连接,然后添加一个包含以下脚本的新脚本:

/*
USE [master]
GO
*/

USE master
GO

构建 MSI 并尝试安装它,您将收到以下 MSI 错误:

错误 27506。执行 SQL 脚本 sqlscript.sql 时出错。第 3 行。缺失 结束注释标记'*/'。 (113)

将多行注释更改为 -- 形式将解决问题。此外,如果结束注释标记前面没有 GO 语句,则安装不会失败。例如:

/*
THIS
WILL
NOT
FAIL
*/

有人遇到过这个错误吗?有什么办法可以“修复”它?

PS:我会将其发布到 Flexara 的论坛。

【问题讨论】:

    标签: installshield installshield-2010 installshield-2009


    【解决方案1】:

    这对我来说听起来像是已知的行为。我相信解析会查找 GO 的行而不考虑其他任何内容,因此多行 cmets 不会影响它。请参阅 hidenori 在线程 Install Shield is trashing SQL Scripts 上的第二个回复。

    您似乎已经确定了解决方法 - 将 GO 更改为 --GO

    【讨论】:

    • 是的。但是这种解决方法是不可接受的,因为 SQL 文件是由 O/R 映射工具生成的。
    • 工具会生成注释部分似乎很奇怪。你能修好工具吗?或者将分隔符从 GO 更改为其他内容?
    • 没有选项可以关闭生成代码上的 cmets。最坏的情况,我想我需要编写一个清理器来清理生成的脚本。顺便说一句,该工具是 LLBLGen。我认为它很受欢迎。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    相关资源
    最近更新 更多