我想做一些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参数为机器名/实例 –