2012-10-05 4 views
4

자동화 된 빌드가 끝날 때 자동으로 웹 응용 프로그램을 배포하려고하는데 분명히 누락되었습니다.TFS2010 빌드가 웹 응용 프로그램을 배포하지 않습니다.

내 설정은 다음과 같습니다 ServerA에
TFS에 Win7에 워크 스테이션
TFS2010 저장소에
VS2012가 serverC에 IIS7에서 서버 B에
테스트 사이트를 에이전트를 구축 할 수 있습니다.

기본 MVC4 템플릿을 사용하여 빠른 테스트 프로젝트를 만들고 MS VS Scrum 1.0 템플릿을 사용하여 팀 프로젝트를 만들었습니다.

게시 웹 대화 상자를 사용하여 웹 응용 프로그램에 대한 새 게시 프로필을 만들었으며 .pubxml 파일이 프로젝트에 체크인되었습니다.

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <WebPublishMethod>MSDeploy</WebPublishMethod> 
    <SiteUrlToLaunchAfterPublish>TestServer/DeployTest</SiteUrlToLaunchAfterPublish> 
    <MSDeployServiceURL>http://TestServer</MSDeployServiceURL> 
    <DeployIisAppPath>webapp-dev/DeployTest</DeployIisAppPath> 
    <RemoteSitePhysicalPath /> 
    <SkipExtraFilesOnServer>False</SkipExtraFilesOnServer> 
    <MSDeployPublishMethod>RemoteAgent</MSDeployPublishMethod> 
    <UserName>mydomain\myuser</UserName> 
    <_SavePWD>True</_SavePWD> 
    <PublishDatabaseSettings> 
     <Objects xmlns="" /> 
    </PublishDatabaseSettings> 
    </PropertyGroup> 
</Project> 

이 이름 중 일부는이 프로필을 사용하여 무고한 :

을 보호하기 위해 변경되었습니다 * I 성공적없이 테스트 웹 서버에 비주얼 스튜디오에서 위해 appliction을 게시 할 수 있습니다 다음 pubxml이 같이 보입니다 어떤 문제.

msbuild를 DeployTest.csproj/P : DeployOnBuild = 참/P : PublishProfile = 시험/P : AllowUntrustedCertificate = 참/P : 비밀 번호 = notTheRealPassword

Scott Hanselman's blog post 다음 나는 성공적으로 내 워크 스테이션 명령 행에서 출판

그런 다음 팀 탐색기에서 빌드 서버를 사용하여 단위 테스트를 컴파일하고 실행하는 빌드를 만들었습니다. 문제 없다. 프로젝트 빌드, 단위 테스트 합격.

/P : DeployOnBuild = 참/P : PublishProfile = 시험/P : AllowUntrustedCertificate =

나는 다음 빌드 정의의 고급 섹션에 인수 빌드 MS에 명령 줄에서 매개 변수를 추가 true/p : Password = notTheRealPassword

빌드가 실행되고 단위 테스트가 통과되고 아무 것도 웹 서버에 게시되지 않습니다. :(

누군가 내가 놓친 무엇을 가르치 려 수 있습니까? 내가 읽은 것도 내가 밖으로 놓친 단계를 나타내는 것 같다하지만이 작업을 수행하는 방법을 설명하는 겉으로는 소중한 작은 문서가있다.

+0

에게 유일한 차이점을, 그 두 가지 시나리오를 배포하는 사이에 나는 배치의 발신자입니다 생각합니다. 권한을 확인하겠습니다. –

+0

빌드 서비스는 웹 서버의 Administrators 그룹에 추가 한 도메인 계정으로 실행됩니다. 그것은 명령 행 테스트에서 성공적으로 사용한 것과 동일한 계정이고 VS는 게시합니다. – Nick

답변

1

그것은 소리 TFS 프로필을 게시 지원하지 않을 수있다.

당신은 프로필에서 모든 매개 변수를 빼고 수동으로 지정해야 할 수도 있습니다.

가 여기에 비슷한 질문입니다.

Team Build: Publish locally using MSDeploy

+3

누구나이를 확인/거부 할 수 있습니까? TFS2010은 PublishProfile 매개 변수를 지원합니까? – Nick

0

나는 이것이 오래된 문제라는 것을 알고 있지만, 오늘 나는 똑같은 문제에 부딪혔다. 나는 당신이 관찰 한 행동의 이유를 알고 있다고 생각한다. 문제를 요약하면 다음과 같습니다.

  1. 웹 배포 프로필을 만들었습니다.
  2. MSBuild 명령과 함께 명령 프롬프트에서 프로필을 사용하면 사이트가 성공적으로 게시됩니다.
  3. 그러나 빌드 정의의 고급 섹션에 MS Build Arguments를 지정하여 빌드 정의에서이 프로필을 사용하면 사이트가 게시되지 않습니다.

프로필 기능을 사용하여 게시를 지원하는 워크 스테이션에 VS 2012가 있기 때문에이 문제의 원인이 있다고 생각합니다. 따라서 작업장의 명령 프롬프트에서 MS 빌드를 실행하면 사이트가 게시됩니다. 그러나 게시 프로필에 대한 지원은 TFS 2010에서 사용할 수 없으므로 빌드 서버에서는 사이트가 게시되지 않습니다.

내가 오늘 같은 문제에 직면 나는 문제 해결을 위해 다음 않았다 : TFS의 시스템에서

  1. , 명령 프롬프트에서를, 나는 MS의 프로필을 게시와 명령을 구축 달렸다. 명령이 성공적으로 실행되었지만 사이트에 게시 된 (복사 된) 내용이 없습니다. 이는 TFS 2010 서버가 공개 프로필을 지원하지 않음을 증명합니다.
  2. VS 2010을 TFS 컴퓨터에 배포했습니다. Visual Studio 2010 용 웹 배포 3.5 및 Windows Azure SDK를 설치했습니다. VS 2010의 프로필 게시 기능을 제공하는 방법입니다.
  3. 그런 다음 명령 프롬프트에서 게시 된 프로필을 사용하여 MS 빌드 명령을 실행하고 사이트를 성공적으로 게시했습니다. .
  4. 그런 다음 MS 빌드 매개 변수로 빌드 정의를 실행하면 사이트가 성공적으로 게시됩니다.

Visual Studio를 TFS 컴퓨터에 설치하는 것이 이상적인 솔루션이 아니라는 것을 알고 있지만 적어도 내 문제는 해결되었습니다. 게시 프로필 지원과 함께 VS 2010을 설치하면 왜 문제가 해결되었는지 잘 모르겠습니다. 하지만 설치 후 일부 누락 된 구성 요소/dll이 문제를 해결 한 TFS 시스템에 배포 된 것으로 보입니다. 배포 문제가 해결되기를 바랍니다.

[업데이트] : 위와 같은 문제가 발생할 수 있습니다. 빌드 활동의 로그 메시지를 확인하십시오. C : \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (484, 9) : 경고 : ProjectName.csproj의 OutputPath 속성이 설정되지 않았습니다. . 이 프로젝트에 유효한 구성 및 플랫폼 조합을 지정했는지 확인하십시오. Configuration = 'Release'Platform = '모든 CPU'

그런 다음 빌드 구성과 관련이있을 수 있습니다. 빌드 구성으로 "Any CPU"를 사용하는 경우이를 "AnyCPU"(공간 확보)로 변경하십시오. 자세한 설명은 다음 링크를 참조하십시오

http://social.msdn.microsoft.com/Forums/vstudio/en-US/0bb277ec-a08c-4795-88f0-3207654e2560/the-outputpath-property-is-not-set-for-project-xxxxxbtproj-please-check-to-make-sure-that-you?forum=tfsbuild

아메이

+0

내 모든 CPU에서 공간을 제거하자마자 빌드에서 80 개의 오류가 발생합니다 ... – ganders

관련 문제