Team Foundation Server构建正在改变web.config TWICE,第二次是错误的

时间:2012-03-15 13:05:10

标签: msbuild web-config transform tfsbuild msdeploy

我在流程中设置了TFS构建定义,其中包含以下信息 - >高级 - > MSBuild Arguments部分:(此帖子中为了安全性而省略了[]括号内的值

/p:DeployOnBuild=True 
/p:MSDeployPublishMethod=RemoteAgent 
/p:MSDeployServiceUrl=[URL] 
/p:DeployIisAppPath=[IISPATH] 
/p:UserName=[USERNAME] 
/p:Password=[PASSWORD]
/p:CreatePackageOnPublish=True 
/p:DeployTarget=MSDeployPublish 
/p:Configuration=Development

这是我的问题。我在我的Web项目中设置了许多配置,而开发配置就是其中之一。如果我不使用“/ p:Configuration = Development”并构建项目,然后自动部署到我们的开发环境,那么web.config转换是错误的。它正在用另一个配置中的信息替换我的连接字符串信息。

如果我将“/ p:Configuration = Development”放回到MSBuild arg列表并在构建过程中打开VS2010中的web.config文件,第一次在IDE外部更改web.config,我可以看到已根据开发配置进行了相应的web.config转换,但随后web.config文件被更改为AGAIN,并且它返回到不正确的配置。

我的想法是,当离开“/ p:Configuration = Development”时,MSBuild正确,但是从MSBuild调用的任何进程(我假设MSDeploy)实际将站点部署到服务器错了。

哦,我使用的是IIS6服务器,而不是IIS7,因此任何特定于IIS7的功能都无法帮助我。

有关如何解决此问题的任何想法吗?

1 个答案:

答案 0 :(得分:0)

编辑 - 修复 所以,我和一些同事花了一些时间在这上面,并最终重建我们的环境是出于无关的原因。重建后,我们开始看到同样的事情发生了。我们看了一下IIS临时压缩文件(C:\ inetpub \ temp \ IIS临时压缩文件)文件夹,发现存储了很多旧信息。我们删除了该文件夹中的所有内容并运行了iisreset,并且构建按预期工作。

- 原帖 我有完全相同的问题。我已经查看了构建服务器上我能想到的每个输出文件,它们都是正确的。但是,当调用msdeploy时,转换似乎发生(基于修改日期)但是做错了。我还尝试抓取deploy.zip并在Web服务器上导入应用程序,它正确部署。有谁知道如何拦截来自构建服务器的msdeploy调用,以查看该命令包含的内容。我试过了procmon,但没有太多运气。