配置 TeamCity MSBuild 和 MSDeploy

8

我在使用MSBuild和MSDeploy设置不同环境时遇到了问题。

我在TeamCity上设置了两个配置:

  1. TestConfiguration(此项构建测试配置并运行单元测试)
  2. StagingConfiguration(旨在打包并部署到我们的UA测试用暂存区)

我的TestConfiguration正常工作,但是StagingConfiguration没有部署该软件包。

<MSBuild Projects="MyProject\MyProject.csproj"
         Properties="Configuration=Staging;
         DeployOnBuild=true;
         DeployTarget=Package;"/>

我尝试添加了两个

_PackageTempDir=\\server\c$\WebDirectory;
PackageLocation=\\server\c$\WebDirectory;

但是它们似乎都没有起到作用,我错过了什么吗?我并没有找到任何文档,只有零散的博客文章。我需要在我的TeamCity服务器上安装一些东西才能使MSDeploy工作吗?

我的理想情况是:

  1. 检入到tfs中
  2. 在TeamCity手动运行StagingConfiguartion
  3. 代码被构建并部署到\server\c$\WebDirectory中

你收到了哪些错误信息? - 8DH
你是否检查了运行构建代理的用户帐户是否具有对所提到的 UNC 路径的写入访问权限? - 8DH
在 CI 构建期间,您应该考虑构建 msdeploy 包,并让您的“部署构建”使用 msdeploy 来部署现有的(构建产物)构建包。在您的方法中,您每次部署都是从源代码重新构建的。 - John Dhom
请查看Troy Hunt的五部分文章,它是一个非常好的方法,因为它通过使用TeamCity从构建到部署并创建构件(已构建的代码)来引导您。他的文章虽然使用Subversion,但您可以轻松地用TFS替换它。 - Bryan Hong
2个回答

4
您需要配置TeamCity“系统属性”,这些属性将传递给MsBuild并控制MsDeploy管道。设置这些属性有点棘手,但您需要设置的属性包括:
- system.CreatePackageOnPublish=true - system.DeployOnBuild=true - system.DeployTarget=MSDeployPublish - system.MSDeployPublishMethod=WMSvc - system.DeployIISAppPath=[Default Web Site] - system.MSDeployServiceUrl=[yourServerDomainName] - system.Username=[username] - system.Password=[password]
我在这里写了一篇更详细的博客文章:Web Deploy (MS Deploy) from TeamCity - http://www.geekytidbits.com/web-deploy-ms-deploy-from-teamcity/ 以下是我的配置示例: Screenshot of Example System Properties within Teamcity

以上是一篇非常好的文章。它采用了构建msdeploy website.zip然后部署的方法。 - John Dhom
如果您能扩展您的回答并提供参考链接,那将非常好。非常感谢。 - Kev
@Kev,我增加了更多细节。 - Brady Holt

3
当构建服务器上没有安装Visual Studio时(它绝对不应该安装),您需要从开发机器中获取一些文件才能使事情正常运行:
从您的开发机器的C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0文件夹中复制WebWeb Applications文件夹到构建服务器上相应的目录。
(来自MSBuild target package not found

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