我想做一些SQL的東西(回數據庫,恢復數據庫,運行一些腳本文件)作爲MSBuild腳本的一部分。 MSBuild擴展包中的Sql2008.Database任務似乎是一個簡單的方法,但我找不到指定服務器實例或用戶名和密碼的方法。我發現很難相信它僅限於您正在構建的計算機上的默認實例,並且想要在用戶MSBuild正在運行時進行連接,但我找不到其他方法。 This是我工作的文檔。任何人都可以解釋如何做到這一點,或者我需要看看不同的方法?MSBuild ExtensionPack Sql2008.Database任務
回答
我發現MSBuild.ExtensionPack.BaseTask
類有屬性MachineName
UserName
和UserPassword
。 SQL2008.Database
類繼承此類。我習慣於MSDN風格的文檔,其中繼承的成員記錄在派生類,所以我不認爲在那裏尋找他們,雖然我應該有。這對他們來說確實是一個奇怪的地方,但是在從MSBuild.ExtensionPack.BaseTask
繼承的許多其他類的背景下,它們毫無意義。
該任務是否有MachineName成員?認爲這只是你需要的sql實例名稱。
我使用任務MSBuild.ExtensionPack.SqlServer.SqlExecute和一個sql語句來執行其他任務
<MSBuild.ExtensionPack.SqlServer.SqlExecute TaskAction="ExecuteReader"
Sql="RESTORE DATABASE $(DatabaseName) FROM DISK = N'$(RestoreFileDestination)\Source\$(Branch)\Build\$(DatabaseFile)' WITH FILE = 1,MOVE N'Accelerate' TO N'$(dataDir)\$(DatabaseName)_1.LDF', MOVE N'Accelerate_log' TO N'$(logsDir)\$(DatabaseName)_2.LDF', NOUNLOAD, REPLACE, KEEP_CDC, STATS = 10"
ConnectionString="Data Source=Localhost\SQLExpress;Initial Catalog=master;Integrated Security=True"
CommandTimeout="660">
他們從來沒有想到我似乎需要的選項....
不,它不具備計算機名。我正在考慮如上使用SqlExecute任務,但如果可能的話,我寧願使用Sql2008.Database任務,因爲備份/恢復選項是任務定義的一部分,而不是SQL命令的一部分。 –
從任務的幫助:<! - 將數據庫還原到其他位置 - >
好的,我沒有注意到,我正在查看這裏定義的Database類的成員http://www.msbuildextensionpack.com/help/4.0.1.0/html/2dfa8205-e7ff-59bb-771b-d107fd8cb0da.htm和MachineName不是其中之一。但是,這對我的問題中指定的用戶名和密碼不起作用。我需要針對不屬於域的遠程SQL服務器運行腳本,因此我無法使用集成的Windows身份驗證。 –
有用戶名和的userPassword屬性,你可以使用:
<MSBuild.ExtensionPack.Sql2008.Database
MachineName="$(SQLServer)"
TaskAction="Backup"
DatabaseItem="$(SQLDatabaseName)"
DataFilePath="$(SQLBackupLocation)"
UserName="$(SQLUserName)"
UserPassword="$(SQLPassword)" />
感謝您的輸入,但如果你看我自己的答案,我發現自己幾個月前 –
- 1. Svcutil.exe MSBuild任務
- 2. MSBuild WriteCodeFragment任務
- 3. XSLTC.EXE MSBuild任務
- 4. 開源msbuild任務
- 5. msbuild的SFTP任務?
- 6. MSBuild回聲任務?
- 7. MSBuild任務無聲執行
- 8. Teamcity,MSBUILD ExtensionPack.Framework.AssemblyInfo任務失敗
- 9. MSBuild任務和屬性
- 10. msbuild自定義任務
- 11. Albacore msbuild任務問題
- 12. Google Closure MSBuild任務錯誤
- 13. 郵編使用MSBuild任務
- 14. MSBuild MSBuildCommunityTasks任務時間
- 15. 使用WriteCodeFragment MSBuild任務
- 16. msbuild社區任務和svn
- 17. 任何好的PowerShell MSBuild任務?
- 18. 從MSBuild Exec運行powershell腳本的異常任務
- 19. MSBuild任務需要的參數任務SVNCommit
- 20. MSBuild社區任務的Zip任務更改文件屬性
- 21. 的MSBuild - 如何做任務的MSBuild遍歷文件
- 22. Nant msbuild任務,使用.net 4.0 rc
- 23. MSBuild自定義任務「Hello World」演練
- 24. MSBuild執行任務沒有阻止
- 25. MSBuild從自定義任務參數
- 26. MSBuild任務和傳遞屬性
- 27. MSBuild任務的測試驅動開發
- 28. 如何使用(wix)火炬msbuild任務?
- 29. MSBuild Post Build任務執行EXE
- 30. ASP.NET:發佈後執行MSBuild任務
你仍然限於默認實例嗎? – Burt
不,你只是使用命名實例的正常語法,即設置MachineName參數爲機器名/實例 –