我正在努力为大型公司服务基础架构创建构建和部署基础架构。我们正在为构建服务器,Visual Studio 2012使用TFS Build 2012来生成WPP部署软件包,并使用MSDEPLOY 2.1来执行实际部署。(由于许多错误,我们无法使用MSDEPLOY 3 -NTLM身份验证与WMSVC一样)。
。我已经创建了一个" project.wpp.targets"文件,并添加了以下属性:
<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.SetParameters.xml
Project.SourceManifest.xml
Project.deploy.cmd
Project.deploy-readme.txt
内部project.zip是:
Archive.xml
Parameters.xml
systemInfo.xml
问题1 - sourcemanifest.xml文件是什么,为什么它不在zip软件包中?似乎创建用于部署的ZIP文件包的全部原因是完全自我包含的。该SourceManifest文件是"松散的" - 我们不能再将zip文件扔在我们的部署文件共享上。为什么不在包装中?它还指向构建服务器!
上的特定路径问题2 - 什么是Archive.xml文件?对于SourceManifest.xml来说,它似乎有些多余 - 我在软件包中提到的Microsoft文档中看到了一个提供商,许多提供商等。该文件看起来像清单,但称为" Archive.xml"。文件名很重要吗?subtest.xml与Archive.xml不同吗?它们与sourcemanifest.xml有何关系,同时看起来相似但又不同?
问题3 - 什么是SystemInfo.xml?它似乎列出了构建服务器上IIS角色安装的所有组件。例如,如果我在本地计算机上的命令行中运行构建,则列出了安装.NET 2.0和4.0的构建,并且计算机上各种IIS组件的许多true/false值。问题是这些设置对我实际要部署的内容具有 no !MSDEPLOY是否曾经看过这个文件?它的一代可以被禁用吗?我绝对不希望构建服务器的配置工件影响生产!
生成的zip软件包是自给自足的,可以与msdeploy.exe一起使用,而没有目录中的任何其他文件。
您可以防止 cmd 和 setParameters 文件通过设置GenerateSampleDeployScript=False
生成。您不能配置 sourcemanifest 在构建后要删除,但是您可以安全地进行手动执行。
sourcemanifest.xml 基本上是诊断工件。实际上,它是同步-dest:package=Project.zip
-source:manifest=Project.SourceManifest.xml
Archive.xml 是软件包提供商的内部代表。该文件始终称为Archive.xml,并且文件提及清单的文档是错误的。
我实际上不确定如何使用 SystemInfo.xml 。我不知道一种禁用功能的方法,但是我也从未遇到过它的属性影响部署的情况。