在TFS生成过程中部署数据库和web项目



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

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

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

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

/p:DeployOnBuild=True

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

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

但我有点困惑我应该使用哪种方法:WMSVC或远程代理或其他什么。设置从TFS构建服务器到IIS 7服务器的Web部署并避免用户帐户出现问题的最简单方法(以避免设置/p:UserName=YOURUSERNAME/p: 密码=XAML或生成定义中的YOURPASSWORD)?

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

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

我希望MSBuild/MSDeploy足够聪明,如果当前项目不是web应用程序,或者它可能会在整个构建过程中产生失败,那么就忽略那些/p:标志?

这两个网站:

你部署错误的

无头msbuild支持ssdt sqlproj项目

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

现在我知道WMSVC是IIS7上远程发布的首选方法(而不是RemoteAgent),但我需要在目标服务器上安装WebDeploy。在localhost上,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 SiteMyWebApp

它最终开始在我的本地主机上发布到IIS7。

嗯,为什么发布目标不发布,而只有构建目标发布?这对我来说是个谜。尤其是因为我在sqlproj项目中使用了Publish目标,而且它们实际上可以发布到SQL服务器上。

相关内容

  • 没有找到相关文章

最新更新