【问题标题】:TFS 2012 not copying transformed Web.Config to _PublishedWebsiteTFS 2012 未将转换后的 Web.Config 复制到 _PublishedWebsite
【发布时间】:2015-03-05 17:46:48
【问题描述】:

我有一个带有配置转换的 Web 项目。

在我的本地机器上,构建项目后,转换工作正常。

但是,我的项目被推送到 TFS 并在那里构建,配置文件在主放置文件夹中进行了转换;但是,_PublishedWebsites 中的版本是原始的、未转换的版本。

这在使用 Octopack 时会引起问题,因为它将所有内容打包在 _PublishedWebsites\ 文件夹中以进行部署,因此,我在部署中得到了一个未转换的文件

有没有办法让 TFS 在推送到 _PublishedWebsites 之前转换配置文件

编辑
我们正在使用 TFS 2012

【问题讨论】:

  • 构建服务器上安装了什么版本的VS?
  • 对不起,应该包括 - 它是 TFS 2012
  • 但是 Visual Studio 的哪个版本?
  • 你为什么关心有一个转换的 web.config。使用您的部署工具根据您要部署的环境管理 web.config。如果您使用的是 web.config,那么每个目标都需要一个,然后您需要管理正确的复制。大多数现代部署工具都会让您有机会替换 web.config 中的令牌,或更改 web.config 节点值。
  • 我的 'web.config' 包含默认值,用于 Visual Studio 中的调试。 'localhost' 服务器连接。我的 web.release.config 包含将值设置为 #{VariableName} 的转换 - 然后章鱼应该替换这些标记

标签: tfs msbuild web-config octopus-deploy


【解决方案1】:

根据我在这些文章中找到的信息:

解决方案是添加

/p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false

到我的构建参数。

现在,转换后的 Web.Config 文件被复制到 _PublishedWebsites

【讨论】:

  • 仅供参考 - 我不确定您是否知道可以将所有转换捆绑在 NuGet 包中,并让 Octopus 为每个环境运行转换。这样您就不必在构建中针对特定环境。
猜你喜欢
  • 2013-04-25
  • 1970-01-01
  • 1970-01-01
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
  • 2017-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多