MSBuild ExtensionPack Sql2008。数据库任务

MSBuild ExtensionPack Sql2008。数据库任务,msbuild,msbuild-task,msbuildextensionpack,Msbuild,Msbuild Task,Msbuildextensionpack,我正在尝试将一些SQL操作(备份数据库、还原数据库、运行一些脚本文件)作为MSBuild脚本的一部分。MSBuild扩展包中的Sql2008.Database任务似乎是一种很好的简单方法,但是我找不到指定服务器实例或用户名和密码的方法。我发现很难相信它仅限于您正在构建的计算机上的默认实例,并且在用户MSBuild运行时希望连接,但我找不到其他方法来执行任何操作。是我正在使用的文档。有人能解释一下怎么做吗,或者我需要看一种不同的方法吗?该任务没有MachineName成员吗?认为这正是您需要的sq

我正在尝试将一些SQL操作(备份数据库、还原数据库、运行一些脚本文件)作为MSBuild脚本的一部分。MSBuild扩展包中的Sql2008.Database任务似乎是一种很好的简单方法,但是我找不到指定服务器实例或用户名和密码的方法。我发现很难相信它仅限于您正在构建的计算机上的默认实例,并且在用户MSBuild运行时希望连接,但我找不到其他方法来执行任何操作。是我正在使用的文档。有人能解释一下怎么做吗,或者我需要看一种不同的方法吗?

该任务没有MachineName成员吗?认为这正是您需要的sql实例名称

我使用任务MSBuild.ExtensionPack.SqlServer.SqlExecute和sql语句来执行其他所有操作 e、 g



他们永远不会想到我似乎需要的所有选项….

该任务没有MachineName成员吗?认为这正是您需要的sql实例名称

我使用任务MSBuild.ExtensionPack.SqlServer.SqlExecute和sql语句来执行其他所有操作 e、 g



他们从来没有想到我需要的所有选项……

我发现
MSBuild.ExtensionPack.BaseTask
类具有
MachineName
UserName
UserPassword
属性<代码>SQL2008。数据库类继承自该类。我习惯于MSDN样式的文档,其中继承的成员被记录在派生类上,因此我不想在那里查找它们,尽管我应该在那里查找。对他们来说,这似乎是一个奇怪的地方,因为它们在继承自
MSBuild.ExtensionPack.BaseTask
的许多其他类的上下文中毫无意义。我发现
MSBuild.ExtensionPack.BaseTask
类具有
MachineName
用户名和
UserPassword
<代码>SQL2008。数据库类继承自该类。我习惯于MSDN样式的文档,其中继承的成员被记录在派生类上,因此我不想在那里查找它们,尽管我应该在那里查找。对于他们来说,这似乎是一个奇怪的地方,因为它们在继承自
MSBuild.ExtensionPack.BaseTask

的许多其他类的上下文中毫无意义。您可以使用以下用户名和用户密码属性:



您可以使用用户名和用户密码属性:



不,它没有MachineName。我正在考虑如上所述使用SqlExecute任务,但我更喜欢使用Sql2008。数据库任务(如果可能),因为备份/还原选项是任务定义的一部分,而不是SQL命令的一部分。在任务的帮助中:?好的,我没有注意到,我正在查看这里定义的数据库类的成员,MachineName不是其中之一。但是,这对我的问题中指定的用户名和密码部分没有帮助。我需要针对不属于域的远程SQL server运行脚本,因此我无法使用集成windows身份验证。抱歉,再次阅读上面的内容,这似乎有点粗鲁,非常感谢您的帮助如果没有您的帮助,我可能不会注意到MachineName属性。问题是Sql2008.Database任务中没有ConnectionString属性,我看不到提供连接字符串的等效方法。不,它没有MachineName。我正在考虑如上所述使用SqlExecute任务,但我更喜欢使用Sql2008。数据库任务(如果可能),因为备份/还原选项是任务定义的一部分,而不是SQL命令的一部分。在任务的帮助中:?好的,我没有注意到,我正在查看这里定义的数据库类的成员,MachineName不是其中之一。但是,这对我的问题中指定的用户名和密码部分没有帮助。我需要针对不属于域的远程SQL server运行脚本,因此我无法使用集成windows身份验证。抱歉,再次阅读上面的内容,这似乎有点粗鲁,非常感谢您的帮助如果没有您的帮助,我可能不会注意到MachineName属性。问题是Sql2008.Database任务中没有ConnectionString属性,我看不到提供连接字符串的等效方法。感谢您的输入,但如果您查看我自己的答案,我发现这一点已经持续了好几个月A谢谢你的输入,但如果你看看我自己的答案,我发现就我自己而言,你仍然局限于默认实例吗?不,你只是使用命名实例的正常语法,例如,将MachineName参数设置为MachineName/instance是否仍限于默认实例?不,您只需使用命名实例的常规语法,即将MachineName参数设置为MachineName/instance
<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">
<MSBuild.ExtensionPack.Sql2008.Database 
MachineName="$(SQLServer)" 
TaskAction="Backup" 
DatabaseItem="$(SQLDatabaseName)" 
DataFilePath="$(SQLBackupLocation)" 
UserName="$(SQLUserName)"
UserPassword="$(SQLPassword)" />