2011-04-13 75 views
8

我遇到了使用MSBuild和MSDeploy设置不同环境的问题。配置TeamCity MSBuild和MSDeploy

我设置2个配置上的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. 运行StagingConfiguartion在TeamCity的手动
  3. 代码被编译并部署到\服务器\ C $ \ WebDirectory
+0

你会得到什么错误信息? – 8DH 2011-05-18 10:03:52

+0

您是否检查过运行构建代理的用户帐户对所提及的UNC路径具有写权限? – 8DH 2011-05-18 10:04:28

+0

您应该考虑在CI构建期间构建msdeploy软件包,并让您的“部署构建”使用msdeploy来剥夺现有(构建构件)构建软件包。在你的方法中,你是从每个部署的源代码重建。 – 2011-12-27 16:25:24

回答

4

你需要配置将传递给MsBuild并控制MsDeploy管道的TeamCity“系统属性”。这是一个有点棘手得到正确安装,但您需要设置的是:

  • system.CreatePackageOnPublish =真
  • system.DeployOnBuild =真
  • SYSTEN,DeployTarget = MSDeployPublish
  • system.MSDeployPublishMethod = WMSVC
  • system.DeployIISAppPath = [默认网站]
  • system.MSDeployServiceUrl = [yourServerDomainName]
  • 系统。用户名= [用户名]
  • system.Password = [密码]

我写在这里更多细节的博客文章:从TeamCity的Web部署(MS部署) - http://www.geekytidbits.com/web-deploy-ms-deploy-from-teamcity/

这里是我的配置是这样的: enter image description here

+0

以上是一篇非常不错的文章。它采用构建msdeploy website.zip然后进行部署的方法。 – 2011-12-27 16:23:23

+0

同样,如果您可以扩大您的答案并提供参考链接,那将会很好。非常感激。 – Kev 2012-08-07 23:24:59

+0

@Kev我增加了更多的细节。 – Brady 2015-05-13 13:36:37

3

当Visual Studio未构建服务器上安装(这绝对应该是)你需要几个文件从你的dev的机器使事情运行:

从开发机器上的C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0文件夹复制WebWeb Applications文件夹到您的生成服务器上的等效目录。

(来自MSBuild target package not found