2012-12-19 8 views
4

저는 대기업 서비스 인프라를위한 빌드 및 배포 인프라를 만드는 중입니다. 우리는 WPF 배포 패키지를 생성하는 Build Server, Visual Studio 2012 및 실제 배포를 수행하는 MSDeploy 2.1을 위해 TFS Build 2012를 사용하고 있습니다. (우리는 MSDeploy 3을 여러 가지 버그로 인해 사용할 수 없습니다 - NTLM 인증은 WMSvc 등으로 깨졌습니다). 나는 "Project.wpp.targets"파일을 생성하고 다음과 같은 속성을 추가 한빌드 서버 용 Visual Studio 2012 웹 게시 파이프 라인 (WPP) 사용자 지정

: 컴파일 빌드 서버에서 발생하면

<DeployOnBuild Condition="$(DeployOnBuild) == '' And '$(OutDir)' != '$(OutputPath)' ">true</DeployOnBuild> 
<WebPublishMethod>Package</WebPublishMethod> 
<DeployManagedPipelineMode>Integrated</DeployManagedPipelineMode> 
<Disable_CopyWebApplication>True</Disable_CopyWebApplication> 

, OUTDIR이 OutputPath와 WPP는 다른 것이 활성화됩니다 . project.zip 내부

Project.zip 
Project.SetParameters.xml 
Project.SourceManifest.xml 
Project.deploy.cmd 
Project.deploy-readme.txt 

은 다음과 같습니다 : 빌드는 다음과 같은 파일 출력

Archive.xml 
Parameters.xml 
systemInfo.xml 

질문 1을 - 무엇을위한 SourceManifest.xml 파일이며, 왜 우편에서 그것을하지 않습니다 꾸러미? 배포 용 zip 파일 패키지를 만드는 모든 이유가 완전히 자체적으로 포함 된 것처럼 보입니다. SourceManifest 파일은 "느슨한"파일이므로 더 이상 배포 파일 공유에 zip 파일을 올려 놓을 수 없습니다. 왜 패키지에 들어 있지 않습니까? 또한 빌드 서버의 특정 경로를 가리 킵니다.

질문 2 - Archive.xml 파일은 무엇입니까? SourceManifest.xml에는 다소 중복 된 것처럼 보입니다. 공급자, 공급자 등을 볼 수 있습니다. Microsoft 설명서에서 패키지의 "manifest.xml"에 대해 언급합니다. 이 파일은 매니페스트처럼 보이지만 "archive.xml"이라고합니다. 파일 이름이 중요합니까? manifest.xml이 archive.xml과 다른가요? 동시에 비슷하지만 비슷해 보이는 SourceManifest.xml과 어떻게 관련이 있습니까?

질문 3 - systemInfo.xml의 용도는 무엇입니까? 빌드 서버에 IIS 역할을 위해 설치된 모든 구성 요소가 나열됩니다. 예를 들어 로컬 컴퓨터의 명령 줄에서 빌드를 실행하면 .NET 2.0 및 4.0이 설치되어 있고 내 컴퓨터의 다양한 IIS 구성 요소에 대한 여러 개의 True/False 값이 나열됩니다. 문제는 해당 설정이 이 아니며 실제로 배포하려는 내용을 담고있는입니다! MSDeploy가이 파일을 본 적이 있습니까? 세대가 무력화 될 수 있습니까? 제작 서버가 생산에 영향을주는 구성 아티팩트는 절대 원하지 않습니다!

답변

5

생성 된 zip 패키지는 자체적으로 충분하며 디렉터리의 다른 파일없이 msdeploy.exe와 함께 사용할 수 있습니다.

당신은 GenerateSampleDeployScript=False 설정에 의해 생성되는 것을 cmd를SetParameters에게 파일을 방지 할 수 있습니다. SourceManifest을 빌드 후에 삭제할 수는 없지만 수동으로 안전하게 수행 할 수는 있습니다.

SourceManifest.xml은 기본적으로 진단 아티팩트입니다. 실제로, 그것은 동기의 -dest:package=Project.zip

archive.xml-source:manifest=Project.SourceManifest.xml은 그 안에 무엇의 패키지 프로 바이더의 내부 representatio입니다했다. 이 파일은 항상 archive.xml이며 manifest.xml을 언급하는 문서는 오인됩니다.

나는 실제로 어떻게 systeminfo.xml이 사용되는지 알지 못합니다. 기능을 사용하지 못하게하는 방법을 모르지만 속성이 배포에 영향을 미친 상황을 결코 파악하지 못했습니다.

+0

감사합니다. .wpp.targets 파일에 사용자 지정 대상을 추가하여 소스 매니페스트 파일을 제거 할 수있었습니다. 내가 알 수있는 한 systeminfo.xml은 사용되지 않습니다. 여전히 잘못된 정보로 생성되는 것은 약간 짜증나게합니다. – ShadowChaser

+2

이것은 "웹 배포 - 누락 된 설명서"에 속하는 일종의 정보이며 명확하고 간결합니다. – Snixtor