2011-07-14 47 views
1

我想我在InstallShield 2010中發現了一個包含多行註釋和SQL腳本的bug。InstallShield 2010 SQL腳本多行註釋錯誤?

要重現該錯誤,請創建一個基本的MSI項目。進入安裝設計 - > SQL腳本,創建SQL連接然後添加包含下面的腳本一個新的腳本:

/* 
USE [master] 
GO 
*/ 

USE master 
GO 

構建MSI並嘗試安裝它,您將收到以下MSI錯誤:

Error 27506.Error executing SQL script sqlscript.sql. Line 3. Missing end comment mark '*/'. (113)

將多行註釋更改爲 - 表單將解決問題。另外,如果結束註釋標記沒有在GO語句之後,則安裝不會失敗。例如:

/* 
THIS 
WILL 
NOT 
FAIL 
*/ 

有人遇到過這個錯誤嗎?任何方式來「修復」它? PS:我會張貼這到Flexara的論壇。

回答

2

這聽起來像我知道的行爲。我相信解析會查找GO而不考慮其他任何內容,因此多行註釋不會影響它。請參閱線程Install Shield is trashing SQL Scripts hidenori的第二個迴應。

您似乎已經確定瞭解決方法 - 將GO更改爲--GO

+0

是的。但是該解決方法是不可接受的,因爲SQL文件是由O/R映射工具生成的。 – Ian

+0

似乎很奇怪,一個工具會生成評論部分。你能修復這個工具嗎?或者將分隔符從「GO」更改爲其他內容? –

+0

沒有選項可以關閉生成的代碼的評論。最糟糕的情況是,我想我需要編寫一個清理程序來清理生成的腳本。順便說一下,該工具是LLBLGen。我認爲它很受歡迎。 – Ian