3

두 개의 웹 응용 프로그램과 SQL 데이터베이스 프로젝트가 혼합 된 솔루션이 있습니다.TFS 빌드 프로세스 중에 데이터베이스 및 웹 프로젝트 배포

MS SQL 2012 및 IIS 7이 설치된 원격 테스트 서버도 있습니다. TFS 빌드 서버가 다른 컴퓨터에 있습니다. 모든 서버는 단일 도메인에 구성됩니다.

빌드 프로세스 중에 데이터베이스와 웹 응용 프로그램을 배포하고 싶습니다.

지금 나는 다음과 같은 플래그를 사용하여 TFS XAML 프로세스 파일에 빌드 패키지 생성을 설정 한 :

/p:DeployOnBuild=True 

을 나는 또한 웹 게시에 대한 다른 플래그 설정 한 :

/p:DeployTarget=MsDeployPublish 
/p:CreatePackageOnPublish=True 
/p:MsDeployPublishMethod=WMSVC 
/p:AllowUntrustedCertificate=True 

을하지만, WMSVC 또는 원격 에이전트 또는 다른 어떤 방법을 사용하면 어떤 것이 혼란 스럽습니다. TFS 빌드 서버에서 IIS 7 서버로 웹 배포를 설정하고 사용자 계정에 문제가 발생하지 않도록하는 가장 쉬운 방법은 무엇입니까? (XAML 또는 빌드 정의에서/p : UserName = YOURUSERNAME /p : Password = YOURPASSWORD를 설정하지 않으려면 어떻게해야합니까?

다른 문제는 데이터베이스 프로젝트에 관한 것입니다. 빌드 프로세스가 일부 .dacpac 파일을 생성했습니다. TFS 빌드 프로세스 XAML에서 배포하는 가장 좋은 방법은 무엇입니까?

내 솔루션에는 다양한 유형의 프로젝트가 있으므로 빌드 프로세스를 조정하는 방법을 잘 모르기 때문에 데이터베이스 배포가 필요한 프로젝트와 웹 배포가 필요한 프로젝트를 정확하게 감지합니다.

MSBuild/MSDeploy가 현명한 프로젝트가 웹 응용 프로그램이 아니거나 어쩌면 전체 빌드 프로세스에서 실패를 유발할 경우 해당/p : 플래그를 무시할만큼 똑똑하다고 생각합니까?

+2

나는 오랜 시간에 만들어서 업데이트되지 않으므로이 게시물을 사용하여 질문에 답변하지는 않았지만 여전히 유효하며 도움을 줄 수 있습니다. http://mohamedradwan.wordpress.com/2010/10/23/ 자동 배포 - 웹 사이트를위한 qa-with-team-build/두 번째 것 http://mohamedradwan.wordpress.com/2010/10/15/deploy-db-project-with-team-build-2010 / –

답변

3

이 두 웹 사이트 :

You are deploying it wrong

Headless msbuild support for ssdt sqlproj projects

제대로 모든 것을 설정하는 나에게 많은 도움이되었습니다.

이제 IIS7에서 원격 게시를 위해 WMSVC가 (RemoteAgent를 통해) 선호되지만 대상 서버에 WebDeploy을 설치해야합니다. 로컬 호스트에서 InProc은 정상적으로 작동합니다.

큰 문제 중 하나는 모든 솔루션을 구축 한 후에 웹 응용 프로그램을 게시하려고했지만 MSBuild가 계속 "게시 불가능한 응용 프로그램 건너 뛰기"라고 계속 말했습니다.

그리고 문제는 내 MSBuild를 스크립트에

Targets="Publish" 

했다. 나는

Targets="Build" 

로 변경하고 내 프로젝트에 대한 속성을 넣을 때 :

Configuration=Release; 
    SkipInvalidConfigurations=true; 
    DeployOnBuild=true; 
    CreatePackageOnPublish=true; 
    AllowUntrustedCertificate=true; 
    DeployTarget=MsDeployPublish; 
    MSDeployPublishMethod=InProc; 
    MsDeployServiceUrl=localhost; 
    DeployIISAppPath=Default Web Site\MyWebApp 

그것이 결국 내 로컬 호스트에 IIS7에 게시 실제로 시작했다.

어째서 게시 대상이 게시되지 않지만 대상 만 빌드합니까? 그것은 나를위한 수수께끼입니다. 특히 sqlproj 프로젝트에 Publish 대상을 사용하고 실제로 SQL Server에 잘 게시되기 때문에 특히 그렇습니다.

관련 문제