【问题标题】:How to create web deployment package from team build?如何从团队构建中创建 Web 部署包?
【发布时间】:2011-10-10 09:22:02
【问题描述】:

我已经阅读和试验了好几天。我购买了最新的“Microsoft Build Engine 内部 - 使用 MSBUild 和 Team Foundation Build”。我一直试图通过查看构建目标来解决问题。

我很快就能在构建服务器上构建一个包,但我希望能够指定安装文件夹,所以它不会进入 wwwroot。我读到我必须将项目从使用 cassini 切换到本地 IIS 服务器。经历了所有这些。

我通过定义传递给 msbuild 的参数:

/p:DeployOnBuild=true /p:DeployTarget=Package /p:MSDeployPublishMethod=InProc /p:CreatePackageOnPublish=True /p:MsDeployServiceUrl=localhost

我有很多问题,但我会简单地开始。如果有人能提供指导,我将非常感激。

  1. 如果指定的应用程序在构建服务器上不存在(它不应该存在!),则包创建失败。如果我添加一个相应命名的 shell 应用程序,则会构建包。

  2. 即使我在尝试使用 Web.deploy.cmd 进行部署时破解了 #1,它也会失败:

    错误:不支持将 64 位源和 32 位目标与提供程序 appHostConfig 一起使用。

    请注意,构建服务器是 64 位的,而这个目标服务器(开发)是 32 位的。我有针对“任何 cpu”的构建配置。哦,我正在从 32 位机器调用部署,所以只有 32 位 msdeploy.exe 可用。

【问题讨论】:

    标签: tfs msbuild build msdeploy


    【解决方案1】:

    在“Process”下的相应 BuildDefinition 中,展开“Advanced”部分并将“MSBuild Arguments”的值设置为“/p:DeployOnBuild=True”。

    这将使您的 WebDeploy 包根据您在项目属性中的设置构建。

    【讨论】:

    • 是的,我提到我正在使用这种方法。不过还是谢谢。
    【解决方案2】:

    我写了 2 篇关于如何创建 Web 包并将其自动部署到 Web 服务器的文章,我认为它可能对您有用。

    使用 Team Build click here 自动部署您的网站进行质量检查

    如何使用 MS Deploy 运行远程部署? click here

    【讨论】:

    • 在尝试了几天之后,很明显 msdeploy 对我们没有用处。它通过 xcopy 提供的唯一功能是创建网站。为了做到这一点,您需要指定它应该复制 IIS 设置。很好,但是要在使用构建服务器时做到这一点,需要在构建服务器上设置网站。只是没用。如果我能弄清楚如何生成部署脚本和参数文件,我就可以在团队构建期间为每个环境吐出包并将它们与 TFS Deployer 一起使用。
    • 但即便如此......当 xcopy 提供了我们需要的 99% 的功能时,为什么还要付出所有努力。如果我们每天都在部署站点,我可以理解,但是我们有几个项目,根本没有办法证明让这个为我们工作所需的努力是合理的。这是另一个例子 - 开箱即用,它在表面上做得很好,但试图快速调整它被证明是一场噩梦。
    猜你喜欢
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    相关资源
    最近更新 更多