2016-10-18 4 views
2

이 질문을 쓰기 시작했을 때 성공적인 VSTS 빌드 후에 릴리스 용 웹 응용 프로그램 프로젝트와 관련된 파일을 볼 수 없었습니다. 솔루션의 다른 특정 프로젝트 파일 만있었습니다. 그러나, 나는 방금 this question을 우연히 만났습니다.VSTS 빌드 웹 응용 프로그램의 모든 파일을 삭제하지 않음

내용 설정을 변경하여 웹 응용 프로그램 프로젝트의 컴파일 된 .dll 파일을 볼 수 있습니다. 즉, 해당 프로젝트의 Bin 폴더 내용입니다. 그러나 뷰, 스크립트, CSS 등 내 서버에 빌드 된 웹 응용 프로그램을 복사해야하는 다른 파일은 볼 수 없습니다.

VSTS의 빌드 및 릴리스의 강력 함과 유연성을 찾았습니다. 기능은 매우 혼란스럽고 요구 사항이 지나치게 과장되었습니다. 지금까지 Visual Studio에서 웹 응용 프로그램 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 게시를 선택하고 파일 시스템 게시 방법을 사용했습니다. 쉬운. 이제는 응용 프로그램을 구축하고 배포하는 작업을 자동화해야하므로 여러 번 복잡해집니다!

그럼, VSTS로 빌드 솔루션을 어떻게 구할 수 있는지 알려주시면 릴리즈 정의에서 파일 복사 작업을 사용하여 파일을 우리 웹 서버에 복사 할 수 있습니다 (서버 isn ' 인터넷에 보이지 않도록 로컬에서 호스팅되는 에이전트를 사용하고 있습니까?)

+0

당신이 다른 질문에서 MSBuild를 플래그, 당신은 당신의 하락 폴더에 "_PublishedWebsites"폴더를 참조해야 사용하는 경우. 해당 폴더 안에는 웹 서버에 배포해야하는 모든 파일이있는 응용 프로그램 폴더가 있어야합니다. 그 중 하나가 보이니? –

+0

나는 실제로 JimiSweden이 올린 두 번째 대답에서 조언을 따르고있었습니다. MSDuild 스위치를 사용하지는 않았는데 포스터는 웹 서버에 직접 파일을 복사하는 대신 WebDeploy 패키지를 작성한다고 말했기 때문에 사용하지 않았습니다. 어떤 스위치가 "_PublishedWebsites"폴더가 될 것인지 알고 있습니까? –

+1

걱정하지 말고, 주석의 아래쪽에서 발견했습니다. /p:outdir=$(build.artifactstagingdirectory) 스위치입니다. 그것을 지금 시도하십시오. –

답변

0

자료를 Visual Studio에서 웹 응용 프로그램을 게시했습니다. 일반적으로이 작업은 Project/Properties/PublishProfiles 폴더 아래에 게시 프로필을 생성합니다. 웹 응용 프로그램을 게시하는 데 사용한 설정은 프로필에 저장됩니다. 따라서이 게시 프로필을 소스 제어에 체크인해야합니다. 그리고 다음 TFS 빌드에서, MSBuild를 인수 다음을 추가

/p:DeployOnBuild=true /p:PublishProfile="publishprofile.pubxml" 
+0

나는 이것을 시험해 보았다. (다른 웹 문제로 인해서 게시 된 웹 응용 프로그램이 여전히 작동하지 않더라도) 작동했다. –

2

vNext 빌드에서 파일 복사 또는 빌드 아티팩트 게시 단계를 사용하여 빌드 아티팩트를 공개하십시오. 대상에 푸시되기 전에 이슈가으로 복사되는 상담원의 로컬 경로 을 사용해보십시오.

  1. 추가/P : DeployOnBuild = 사실 /P : 예를 들어 OUTDIR = "$ (build.artifactstagingdirectory) \" Visual Studio에서 인수 단계를 구축, Publish Build Artifacts의 "게시 할 경로"
  2. 변경 $(build.artifactstagingdirectory)\_PublishedWebsites\ProjectName에 작업 :

세부 사항이 질문 빌드 단계의 스크린 샷을 확인하십시오 : 귀하의 의견에 How do I get the the expected output from a TFS 2015 build (to match my XAML build)?

+1

도움 주셔서 감사합니다. 필자는 기본적으로 릴리스 정의에서 Copy Files 태스크의 Source 매개 변수를 PublishedWebsites \ ProjectName 폴더를 가리 키도록 업데이트함으로써 동일한 결과를 얻었습니다. 그러나 필자의 방법이 더 효율적이라는 것을 알 수 있습니다. 저는 VSTS에서 Build/Release를 완전히 고수했습니다. VS에서는 응용 프로그램 프로젝트를 마우스 오른쪽 단추로 클릭하고 게시를 선택하면 필요한 파일이 서버의 공유에 출력됩니다. VSTS의 빌드 기능은 비슷하지만 다른 것을 출력하는 것으로 보입니다. 여기에는 예를 들어 web.config의 여러 버전이 포함되어 있으며 PrecompiledApp.config는 없습니다. –

+0

@PhilipStratford Visual Studio에서 게시 할 때 어떤 게시 방법을 선택합니까? –

+0

@ Eddie-MSFT 파일 시스템 방법을 사용하고 웹 서버의 공유 위치를 설정합니다. –