Team Foundation Server 2012自动构建目标位置

时间:2013-08-26 15:05:15

标签: tfs tfs2012 tfsbuild

我在VS2012中有一个解决方案,当我在VS中发布时,它会将编译后的代码丢弃到具有以下结构的目标位置

\bin
\Content
\Properties
\Scripts
\Services
... etc.

当TFS 2012自动构建运行时,它会将代码放入具有以下结构的目标位置

MyProject_Build\MyProject_Build_20130823.5\_PublishedWebsites\MyProject\bin
MyProject_Build\MyProject_Build_20130823.5\_PublishedWebsites\MyProject\Content
... etc.

我想将代码放到第一个示例的位置,或者至少

\MyProject\bin
... etc.

我的想法是每次都将编译后的代码发布到同一个确切的位置,以便IIS知道代码的位置在哪里?

我该如何更改?

2 个答案:

答案 0 :(得分:2)

这是TFS不支持开箱即用的东西,但是通过Process Template自定义,你绝对可以做到。

但是,我建议使用msdeploy直接更新网站。如果您只需要更新一个网站,那么在TFS(https://stackoverflow.com/a/13706005/581922)中使用msdeploy命令非常容易。

编辑:
根据您的评论,您必须自定义构建过程。 Ewald Hofman有很多关于如何自定义TFS构建流程模板以满足您需求的文章。

如果您想自定义TFS流程模板,那么

  1. 您可以在powershell中执行所有操作,但可以像Ewald演示的那样调用powershell脚本。我写了一篇关于如何将网站部署到IIS using MSdeploy, Powershell and TFSBuild
  2. 的博客文章
  3. 在TFSProcess模板中使用InvokeProcess Activitiy并使用Xcopy将文件复制到所需服务器上的目标文件夹。
  4. 您可能还想查看此post

答案 1 :(得分:0)

为您的网站创建发布配置文件,并选择发布方法作为文件副本,然后选择要复制文件的共享文件夹位置。在tfs构建模板中,在ms构建参数选项中选择您创建的发布配置文件。

/p:DeployOnBuild=true;PublishProfile=Production;