【发布时间】:2014-04-06 11:41:29
【问题描述】:
我正在尝试设置我们的 CI 构建环境并遇到问题。
首先,我使用的是 VS 和 TFS 2012,所以我不能使用 *.12.xaml 模板,因为它们适用于 VS/TFS 2013。
其次,现在我配置为仅使用 defaulttemplate.11.xaml。最初,我使用 WebDeploy 作为部署方法,效果很好。从那时起,我们的网络/服务器团队重新配置了我们的测试环境,以使用 IIS 共享配置和 DFS 复制来保持一切同步。
因此,我无法再使用 WebDeploy(我将此 post 传递给了 TFS 管理员,但他们拒绝了)。
是否有可以添加一些 msbuild 参数的地方,或者我可以发送带有一些参数的 *.cmd 文件以便复制/部署我的代码的构建后事件?
我读过 Hanselman(以及其他所有抄袭他的人)的帖子/博客,上面写着“如果您使用 xcopy,那么您做错了,等等……”,但我相信我可以'T 使用 Web 部署。
更新:
所以我以为我找到了答案。由于网络部署不适合我,我发现一个名为 CopyDirectory 的工作流活动听起来完全符合我的需要。
我完成了更新我的默认模板的过程,以将这个额外的步骤添加到构建过程中,顺便说一句,这不是很好。添加步骤、保存等之后,该步骤不会出现在我的构建输出中。我放弃了一段时间去看看我是否可以在我们的 Jenkins 构建服务器上执行此操作,在那里遇到了一些不同的错误,所以我回到 TFS 进行更改并提交。由于 CI 仍在 TFS 中设置(已授予,失败),我注意到在我提交时构建已启动。我决定看一会儿,它成功完成了!哇,好吧。所以我检查了构建日志,发现它抛出了一个警告,说“复制失败。确保源目录存在并且你有适当的权限”。
好吧,既然我刚刚输入了这个值不正确,没什么大不了的,只要改成正确的BuildDetail.DropLocation,我们就应该是golden了。
错误,在对源值和目标值进行更改后再次构建后,我发现由于我试图将我的文件部署到不同的域,它仍然失败。
哦,除此之外,您不能将凭据传递给复制目录步骤!真的!唷,不过我找到了一些文档,上面写着“在要复制到的域上授予 tfs 构建服务/帐户权限。好吧,如果我的服务器团队允许这样做,那就太好了,但他们不允许。
回到第一点...(这将变成一篇关于我抱怨 TFS 的博客...)
【问题讨论】:
-
实际上不需要,因为应用程序正在部署到另一个域而需要提供凭据不是 TFS 问题。创建信任关系并解决部署问题。除了复制之外,可能还有其他活动需要在远程域中执行。
-
我知道这不是“TFS 问题”,但如果 TFS 允许您将凭据传递给该复制活动,那就太好了。至于信任,我们的服务器/网络团队说这不是一个选择。
标签: c# visual-studio-2012 tfs msbuild continuous-integration