2011-09-05 1 views
0

MSBuild 스크립트의 일부로 일부 SQL 작업 (데이터베이스 백업, 데이터베이스 복원, 일부 스크립트 파일 실행)을 시도하고 있습니다. MSBuild Extension 팩의 Sql2008.Database 작업은 서버 인스턴스 나 사용자 이름 및 암호를 지정하는 방법을 찾을 수 없지만이 작업을 수행하는 좋은 방법이었습니다. 나는 당신이 구축하고있는 컴퓨터의 기본 인스턴스에 제한되어 있으며 MSBuild 사용자가 실행 중일 때 연결하려고하지만 나는 다른 것을 할 수있는 방법을 찾을 수 없다고 생각하는 것이 어렵다고 생각합니다. This은 내가 작업하는 문서입니다. 누구든지이 작업을 수행하는 방법을 설명하거나 다른 접근 방식을 찾아야합니까?MSBuild ExtensionPack Sql2008.Database 작업

답변

1

은 내가 MSBuild.ExtensionPack.BaseTask 클래스는 속성 MachineNameUserNameUserPassword을 가지고 있음을 발견했다. SQL2008.Database 클래스는이 클래스에서 상속받습니다. 나는 상속 된 멤버가 파생 된 클래스에 문서화되어있는 MSDN 스타일 문서에 익숙해 져 있으므로 반드시 찾아야한다고 생각했습니다. MSBuild.ExtensionPack.BaseTask을 상속받은 많은 다른 수업의 맥락에서 의미가 없으므로 이상한 장소로 보입니다.

+0

여전히 기본 인스턴스로 제한되어 있습니까? – Burt

+0

아니요. 명명 된 인스턴스에 일반 구문을 사용하면 안됩니다. 즉 MachineName 매개 변수를 machinename/instance로 설정합니다. –

0

해당 작업에 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"> 

그들은 내가 필요로하는 것 모든 옵션을 생각 없었어요 ....

+0

아니 그것의 MachineName이 없습니다. 위와 같이 SqlExecute 작업을 사용하여 찾고 있지만 백업/복원 옵션을 SQL 명령의 일부가 아닌 작업 정의의 일부로 가능한 Sql2008.Database 작업을 사용하는 것이 좋습니다. –

+0

작업에서 도움말 : ? –

+0

OK 나는 여기에 정의 된 Database 클래스의 멤버를보고 있었다. http://www.msbuildextensionpack.com/help/4.0.1.0/html/2dfa8205-e7ff-59bb-771b-d107fd8cb0da.htm MachineName은 그 중 하나가 아닙니다. 그러나 그것은 내 문제의 특정 사용자 이름과 암호 부분에 도움이되지 않습니다. Windows 통합 인증을 사용할 수 없도록 도메인의 일부가 아닌 원격 SQL 서버에 대해 스크립트를 실행해야합니다. –

2

사용자 이름과 경우 userpassword 속성을 사용할 수 있습니다

<MSBuild.ExtensionPack.Sql2008.Database 
MachineName="$(SQLServer)" 
TaskAction="Backup" 
DatabaseItem="$(SQLDatabaseName)" 
DataFilePath="$(SQLBackupLocation)" 
UserName="$(SQLUserName)" 
UserPassword="$(SQLPassword)" /> 

+0

입력 해 주셔서 감사합니다.하지만 내 자신의 답변을 살펴보면 몇 달 전에 나 자신을 발견했습니다. –