2011-07-21 83 views
4

我一直在阅读和试验几天。我购买了最新的“Microsoft Build Engine内部 - 使用MSBUild和Team Foundation Build”。我一直试图通过查看构建目标来解决问题。如何从团队构建中创建Web部署包?

我很快能得到要构建的构建服务器上的包,但我希望能够到指定的安装文件夹,所以它不会进入wwwroot文件。我读到,我不得不将项目从使用cassini切换到本地IIS服务器。通过所有这一切。

我经过定义的MSBuild ARGS:

/P:DeployOnBuild = TRUE/P:DeployTarget =封装/ P:MSDeployPublishMethod =是InProc/P:CreatePackageOnPublish =真/ P:MsDeployServiceUrl =本地主机

我有这么多的问题,但我会只是开始。如果任何人都可以提供指导,我会非常感激。

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

  2. 即使我砍我的方式过去#1,当我尝试部署使用Web.deploy.cmd,它失败:

    错误:使用64位的源和32位提供程序appHostConfig的目标不受支持。

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

回答

1

在“进程”在适当BuildDefinition,展开“高级”部分,并设置“的MSBuild参数”到“/ P:DeployOnBuild =真”的值。

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

+1

呀,我提到我使用这种方法。不过谢谢。 –

0

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

自动部署你的网站与QA团队建设click here

如何远程运行与MS部署部署? click here

+0

花了几天的时间试图让这个过程变得非常明显,msdeploy不会对我们有用。它通过xcopy提供的唯一功能就是创建网站。为了做到这一点,你需要指定它应该复制IIS设置。很好,但要做到这一点,当使用构建服务器时,需要在构建服务器上设置网站。没用。如果我能想出如何生成部署脚本和参数文件,我可以在团队构建过程中为每个环境吐出软件包,并将它们与TFS Deployer一起使用。 –

+0

但即便如此......当xcopy提供我们需要的99%功能时,为什么要经历所有这些努力。我可以理解,如果我们每天部署网站,但是我们有一些项目,并且根本没有办法证明为使我们为此工作所需的努力量。这是另外一个例子,表面上看起来非常棒,但试图快速调整它很快就证明是一场噩梦。 –