首页 文章

使用visual studio团队服务构建包含多个Web应用程序的解决方案,并将这些Web应用程序部署到azure

提问于
浏览
12

我的团队使用Visual Studio Team Services来管理TFS存储库中的源代码 . 该解决方案包含多个Web应用程序我正在尝试为此解决方案配置持续集成和持续部署,以便在成功构建后将每个Web应用程序部署到正确的Azure Web应用程序 . 我已经将BuildDefinition配置为构建$ / MyProduct / MAIN / MySolution.sln . 我已根据我在此主题上找到的一些MSDN文章为MSBuild定义了以下参数:

/p:DeployOnBuild=true
/p:WebPublishMethod=Package
/p:PackageAsSingleFile=true
/p:SkipInvalidConfigurations=true
/p:PackageLocation="$(build.stagingDirectory)"

构建步骤包括Visual Studio构建步骤,Visual Studio测试步骤(当前禁用以最小化复杂性),索引源和发布符号步骤(我认为我不需要),最后是复制和发布构建文物步骤 .

我可以使用此配置构建此解决方案 . 我可以看到构建结果,构建日志,构建细节等 . 当我查看创建的工件时,我看到两个工件:“drop”和“build.sourceLabel”如果我使用Artifacts Explorer浏览drop文件,我在这个drop文件中找到了我的所有项目,对于web应用程序项目,我可以导航到webapp1 \ obj \ QA \ Package \ PackageTemp \ bin文件夹,并查看Web应用程序的所有DLL等 .

我没有看到的是每个Web应用程序的一个zip文件,这是Visual Studio Team Services的Release功能所期望的 .

我想知道如何修改我当前的配置,以便我可以从Build步骤生成正确的工件,这样我就可以创建正确的Release Wep App Deployment任务,将每个Web应用程序部署到我环境中正确的Web应用程序 .

这一切都是使用Visual Studio 2015和Visual Studio Online(团队服务)完成的 .

1 回答

  • 22

    为了测试您的情况,我使用了Visual Studio 2015并在同一解决方案中创建了3个新的Web项目并检入了VSTS . 然后,我使用Azure网站部署模板创建了一个新版本 . 很多人都想念我们在Create New Build Definition对话框中有Build和Deployment模板 . 我使用Azure网站模板的原因是因为我永远不会记住要传入的msbuild参数 . 如果要使用RM,只需删除Azure Web App部署任务即可 .

    我总是对msbuild参数做出的一个改变是PackageLocation . 我总是将我改为$(BuildConfiguration) . 这样我可以根据需要同时构建Debug和Release .

    /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(BuildConfiguration)"
    

    最后,我更改了Copy and Publish Build Artifacts任务,只搜索“** \ * .zip” . 将Copy Root保留为空并运行构建 . 当您的构建完成时,在浏览工件时,[ProjectName] / [Configuration] /projectName.zip下的每个项目都会有一个zip .

    enter image description here

    如果您还有其他问题,可以在Twitter上发帖我@DonovanBrown

相关问题