0

我在 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 知道代码在哪里?

我怎样才能改变这个?

4

2 回答 2

2

这是 TFS 不支持开箱即用的东西,但通过流程模板自定义,您绝对可以做到。

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

编辑:
根据您的评论,您将不得不自定义构建过程。Ewald Hofman有一系列关于如何自定义 TFS 构建过程模板以满足您的需求的文章。

如果要自定义 TFS 进程模板,则

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

您可能还想查看这篇文章

于 2013-08-27T00:08:07.360 回答
0

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

/p:DeployOnBuild=true;PublishProfile=Production;
于 2013-08-27T07:48:04.517 回答