2010-07-14 32 views
1

好的,所以這裏是場景。從CruiseControl.NET執行sqlcmd時未應用參數

CruiseControl.NET(版本:1.5.7256.1)運行一個項目來重建數據庫。 CruiseControl.NET窗口服務作爲我們爲CC.NET創建的Windows用戶運行。項目中有幾項任務,但都運行良好。但是,運行的任務之一是我在C#中編寫的基於控制檯的實用程序,該實用程序生成批處理文件,然後通過類.NET的實例運行它。

批處理文件生成正確,並且進程在C#中正常運行。但是,運行的批處理文件爲SQLServer(版本2005 SP3)運行sqlcmd命令行實用程序。 sqlcmd按預期運行,但sqlcmd的其中一個選項從未得到應用... -I(啓用帶引號的標識符)。

例如

sqlcmd -U %1 -P %2 -S %3 -d %4 -i someScript.sql -k -b -I >> %LogFileName% 

奇怪的是,如果我運行這個從持續集成服務器的命令提示符下,它被應用於-I運行。

我很困惑。我會明白sqlcmd是否失敗,因爲執行該進程的用戶沒有足夠的權限,而且如果SQLServer身份驗證失敗,但是爲了使其工作,但不應用選項sqlcmd很神祕。

回答

0

難道是因爲我是最後一個參數?也許有一個缺少的空間或東西..你嘗試切換參數順序? (還有,你爲什麼運行一個C#控制檯應用程序來創建一個批處理文件並調用它?不能cc.net運行這個文件本身嗎?)