저는 대기업 서비스 인프라를위한 빌드 및 배포 인프라를 만드는 중입니다. 우리는 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가이 파일을 본 적이 있습니까? 세대가 무력화 될 수 있습니까? 제작 서버가 생산에 영향을주는 구성 아티팩트는 절대 원하지 않습니다!
감사합니다. .wpp.targets 파일에 사용자 지정 대상을 추가하여 소스 매니페스트 파일을 제거 할 수있었습니다. 내가 알 수있는 한 systeminfo.xml은 사용되지 않습니다. 여전히 잘못된 정보로 생성되는 것은 약간 짜증나게합니다. –
ShadowChaser
이것은 "웹 배포 - 누락 된 설명서"에 속하는 일종의 정보이며 명확하고 간결합니다. – Snixtor