gpt4 book ai didi

tfs - 在 TFS 构建过程中部署数据库和 Web 项目

转载 作者:行者123 更新时间:2023-12-02 00:23:18 24 4
gpt4 key购买 nike

我有一个包含几个 Web 应用程序和 SQL 数据库项目的混合解决方案。

我还有一个带有 MS SQL 2012 和 IIS 7 的远程测试服务器。TFS 构建服务器在另一台机器上。所有服务器都配置在一个域上。

我想在构建过程中部署数据库和网络应用程序。

现在,我已使用以下标志在 TFS XAML 进程文件中设置构建包生成:

/p:DeployOnBuild=True

我还为网络发布设置了其他标志:

/p:DeployTarget=MsDeployPublish
/p:CreatePackageOnPublish=True
/p:MsDeployPublishMethod=WMSVC
/p:AllowUntrustedCertificate=True

但我有点困惑应该使用哪种方法:WMSVC 或 Remote Agent 或其他方法。这是设置从 TFS 构建服务器到 IIS 7 服务器的 Web 部署并避免用户帐户问题的最简单方法(避免设置/p:UserName=YOURUSERNAME/p:Password=YOURPASSWORD 在 XAML 或构建定义中)?

另一个问题是数据库项目。构建过程生成了一些 .dacpac 文件。从 TFS 构建过程 XAML 部署它们的最佳方式是什么?

由于我的解决方案包含混合类型的项目,我不确定如何调整我的构建过程以正确检测哪些项目需要数据库部署以及哪些项目需要 Web 部署。

我希望 MSBuild/MSDeploy 足够聪明,可以在当前项目不是 Web 应用程序时忽略那些/p: 标志,或者它可能会导致整个构建过程失败?

最佳答案

这两个网站:

You are deploying it wrong

Headless msbuild support for ssdt sqlproj projects

帮助我正确设置了所有内容。

现在我知道 WMSVC 是在 IIS7 上进行远程发布的首选方法(优于 RemoteAgent),但我需要安装 WebDeploy在目标服务器上。在本地主机上,InProc 工作正常。

一个主要问题是,在构建所有解决方案后,我正竭尽全力尝试发布 Web 应用程序,但 MSBuild 只是一直提示“跳过无法发布的应用程序”。

问题是

Targets="Publish"

在我的 MSBuild 脚本中。当我把它改成

Targets="Build"

并为我的项目添加属性:

  Configuration=Release;
SkipInvalidConfigurations=true;
DeployOnBuild=true;
CreatePackageOnPublish=true;
AllowUntrustedCertificate=true;
DeployTarget=MsDeployPublish;
MSDeployPublishMethod=InProc;
MsDeployServiceUrl=localhost;
DeployIISAppPath=Default Web Site\MyWebApp

它终于真正开始发布到我本地主机上的 IIS7。

呃,为什么 Publish 目标不发布,而只有 Build 目标发布?这对我来说是个谜。特别是因为我为我的 sqlproj 项目使用 Publish 目标,它们实际上很好地发布到 SQL 服务器。

关于tfs - 在 TFS 构建过程中部署数据库和 Web 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9980781/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com