我有一个包含几个 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 部署并避免用户帐户问题的最简单方法(以避免在 XAML 或构建定义中设置 /p:UserName=YOURUSERNAME /p:Password=YOURPASSWORD)?
另一个问题是关于数据库项目。构建过程生成了一些 .dacpac 文件。从 TFS 构建过程 XAML 部署它们的最佳方式是什么?
由于我的解决方案包含混合类型的项目,我不确定如何调整构建过程,以便正确检测哪些项目需要数据库部署以及哪些项目需要 Web 部署。
我希望 MSBuild/MSDeploy 足够聪明,可以忽略那些 /p: 如果当前项目不是 Web 应用程序的标志,或者它可能会导致整个构建过程失败?