【问题标题】:using visual studio team services to build a solution containing multiple web apps and deploy these web apps to azure使用 Visual Studio 团队服务构建包含多个 Web 应用程序的解决方案并将这些 Web 应用程序部署到 azure
【发布时间】:2017-08-05 07:57:51
【问题描述】:

我的团队使用 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 文件,我在这个放置文件中找到了我的所有项目,对于网络应用程序项目,我可以导航到 webapp1\obj\QA\Package\PackageTemp\bin 文件夹并查看网络应用程序的所有 DLL 等。

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

我想知道如何修改我当前的配置,以便我可以从构建步骤生成正确的工件,以便我可以创建正确的发布 Wep 应用程序部署任务,以将每个 Web 应用程序部署到我的正确 Web 应用程序环境。

这一切都通过 Visual Studio 2015 和 Visual Studio Online(团队服务)完成。

【问题讨论】:

    标签: asp.net azure azure-devops


    【解决方案1】:

    为了测试您的情况,我使用了 Visual Studio 2015,并在同一个解决方案中创建了 3 个新的 Web 项目并签入了 VSTS。然后,我使用 Azure 网站部署模板创建了一个新版本。许多人错过了我们在“创建新的构建定义”对话框中有构建和部署模板。我使用 Azure 网站模板的原因是因为我永远记不起要传入的 msbuild 参数。如果要使用 RM,则可以简单地删除 Azure Web App Deployment 任务。

    我总是对 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,并在您探索工件时。

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

    【讨论】:

    • 感谢您的回复...我做了一些进一步的研究,发现有了一个全新的项目/解决方案/webapp,我可以让它像你描述的那样工作。我认为真正的问题是我们的项目和解决方案是在 VS2013 和 .NET 4.0 中创建的,然后迁移/升级/等。一个简单的事实是 .sln 和 .csproj 文件在本地构建,而不是在 VSO 中构建。我将创建新项目和解决方案文件,看看是否会产生更好的结果。
    • @MichaelSchulz 我遇到了同样的问题,解决方案是在 VS2013 中创建的,而不是在 VSO 中构建的。关于如何解决这个问题的任何想法?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多