如何从团队构建中创建Web部署包?

4

我已经阅读和实验了好几天。我买了最新版的“Inside the Microsoft Build Engine - Using MSBuild and 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. 即使我设法绕过#1,当我尝试使用Web.deploy.cmd部署时,它也会失败:

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

    请注意,构建服务器是64位的,而此目标服务器(开发)是32位的。我将生成配置文件构建为“any cpu”。哦,而且我正在从32位机器上调用部署,因此只有32位的msdeploy.exe可用。

2个回答

1
在适当的BuildDefinition下,在“Process”中展开“Advanced”部分,并将“MSBuild Arguments”的值设置为“/p:DeployOnBuild=True”。
这将使您的WebDeploy包根据项目属性中的设置构建。

1
是的,我提到过我正在使用那种方法。不过还是谢谢你。 - Todd Beaulieu

0

我写了两篇关于如何创建Web Package并自动部署到Web服务器的文章,我认为这对你可能很有用。

使用Team Build自动部署您的网站进行QA 点击这里

如何使用MS Deploy运行远程部署?点击这里


在花费了几天的时间尝试让它运行后,显而易见的是,msdeploy对我们没有用处。它唯一比xcopy提供的好处就是创建网站。为了做到这一点,您需要指定它应该复制IIS设置。很好,但是当使用构建服务器时,要做到这一点,必须在构建服务器上设置网站。完全没用。如果我能够找出如何生成部署脚本和参数文件,我可以在团队构建期间为每个环境生成软件包,并将其与TFS Deployer一起使用。 - Todd Beaulieu
但即使如此...为什么要花那么多的力气,当xcopy能提供我们99%所需的功能。如果我们每天部署网站,我可以理解,但我们只有几个项目,根本无法证明这样做需要付出的努力。这是另一个例子,说明了如何——在表面上它做得很好,但试图稍微调整一下就很快变成了噩梦。 - Todd Beaulieu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接