【问题标题】:How do you deploy a website and database project using TFS 2010?如何使用 TFS 2010 部署网站和数据库项目?
【发布时间】:2010-05-20 22:42:47
【问题描述】:

我一直在尝试解决这个问题,但到目前为止还没有找到简单的解决方案。使用 TFS 2010 作为构建过程的一部分来部署数据库项目(和网站)真的那么难吗?

我发现了一个示例,其中涉及大量复杂的检查和编辑工作流程(顺便说一句,这是一个巨大的工作流程)。

我什至购买了“专业的应用程序生命周期管理与 VS 2010”一书,但显然专业人士不会部署他们的应用程序,因为它甚至没有在书中提及。

我知道我在 TFS 方面是迟钝的,但似乎应该有任何简单的方法来做到这一点。有吗?

【问题讨论】:

  • 如果您对我在下面发布的内容遇到问题,请发表评论,我会更新...因为它是一个非常新的东西,还没有很多谷歌可以使用,我和您有同样的经历。当我走的时候它就出来了。如果我忘记了任何内容,我想更新答案以包含它,这样我们就可以保存我所经历的相同体验......你为使用我认为的最新东西付出的代价。
  • 看起来是个不错的答案。我确实想出了部署数据库,所以我将尝试在这里实现你的答案,如果它有效,我一定会把它标记为答案。谢谢!

标签: deployment


【解决方案1】:

我不能说数据库部分,但是我只是在web部分上经历了这个,神奇的部分是not very well documented组件,即MSBuild参数。

在您的构建定义中:

  1. 左侧进程
  2. 必需 > 要构建的项目 > 要构建的配置
    • 编辑,添加一个新的,对于这个例子
      • 配置:Dev(我将在下面介绍如何创建配置)
      • 平台:任何 CPU
  3. 高级 > MSBuild 进程
    • 使用以下参数(至少对我而言,您的发布方法可能会有所不同)。

MsBuild 参数:

/p:MSDeployServiceURL="http://myserver"  
/p:MSDeployPublishMethod=RemoteAgent 
/p:DeployOnBuild=True 
/p:DeployTarget=MsDeployPublish 
/p:CreatePackageOnPublish=True 
/p:username=aduser
/p:password=adpassword

要求:

  1. 您需要在 destination Web 服务器上安装 MS Deploy Remote Agent Service,MSDeploy 也需要在 Build/Deployer 服务器上,但默认情况下应该是这种情况。
  2. 您在上述参数中使用的帐户需要管理员访问权限,至少对 IIS...我不确定最低权限要求是什么。

您可以在您正在部署的 Web 项目中配置站点转到哪个网站/虚拟目录。我个人对每个环境都有一个构建配置,这使得构建非常易于处理和组织。例如,我们有 ReleaseDebugDev(还有更多,但本示例仅此而已)。只有 Web 项目具有 Dev 配置。

为此,请右键单击解决方案,Configuration Manager...,在 Web 项目上单击 configuration 下拉菜单,单击 New... 。给它一个名字,在这个例子中是“Dev”,从调试或发布中复制设置,任何与你的部署服务器环境最接近的匹配。确保选中“创建新的解决方案配置”,这是默认设置。创建后,将解决方案上的配置下拉菜单更改为新的 DevAny CPU...确保您的项目都正确,我有一些翻转到x86 和 x64 随机,不确定具体原因)。

在您的网络项目中,右键单击,属性。在左侧,单击Package/Publish Web(您还想弄乱其他Package/Publish SQL 选项卡,但我不能说)。在右侧的选项中单击将部署包创建为 zip 文件。默认位置很好,下一个文本框我没有在任何地方找到记录。格式是这样的:WebSite/Virtual Directory,所以如果您在 IIS 中有一个名为“BuildSite”的站点,但没有虚拟目录(app == 站点根目录),那么您将有 BuildSite 仅在此框中。如果它位于虚拟目录中,您可能有 Default Web Site/BuildVirtualDirectory

设置完所有这些后,请确保签入解决方案和 Web 项目,以便构建服务器具有您所做的配置更改,然后开始构建:)

如果您有更多问题,我建议您观看 this video by Vishal Joshi,特别是大约 22 和 59 分钟,他也涵盖了数据库部分......但我没有实际尝试过,因为我们处于领先地位非 MSSQL 数据库。

【讨论】:

  • 有没有办法使用 windows auth 而不是硬编码的用户名/密码?
  • @Maslow - 不是我知道的 - 它可以在某处被允许,但我从未见过这个文档(尽管文档一开始就很薄......所以它是可能的)
猜你喜欢
  • 2012-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-15
  • 1970-01-01
  • 1970-01-01
  • 2013-05-17
相关资源
最近更新 更多