HueiFeng

Microsoft MVP

Azure


【Azure DevOps系列】Azure DevOps构建.NET EFCore应用程序

本章我们将看到如何通过Azure DevOps使用EFCore CLI工具将我们的EFCore应用程序进行数据库重建,当然这种操作我不建议使用,建议使用CLI生成sql脚本形式进行发布并迁移。 设置代理服务器sdk - task: UseDotNet@2 inputs: packageType: 'sdk' version: '3.x' 安装dotnet-ef 安装Entity Framework Core CLI工具,用于后面对数据库的操作 - task: CmdLine@2 displayName: 'install dotnet-ef' inputs: script: 'dotnet tool install -g dotnet-ef' 删除数据库 dotnet ef database drop --project <path to your …

.NET Core Azure

【Azure DevOps系列】Azure DevOps EFCore命令式脚本部署到SQL数据库

构建迁移脚本 为了构建迁移脚本,我们将需要使用EF Tools for Command Line Interface。这些工具在Microsoft.EntityFrameworkCore.Tools提供。 迁移脚本 现在我们将通过 dotnet ef migrations script –p path to your csproj with migrations -o $(Build.ArtifactStagingDirectory)\migrations\scripts.sql –i来迁移我们的脚本,在如下代码片段中我将脚本进行迁移出来并且输出到指定的路径 -o $(Build.ArtifactStagingDirectory)/migrations/scripts.sql中, -i代表生成可用于任何迁移的数据库的脚本。 - task: CmdLine@2 …

Azure DevOps

Azure Storage Account 误删恢复

登陆Azure站点,导航到新支持请求工作流程中 file 新建一个支持请求,信息可以按照如下这么去设置,当然要注意订阅账号别选择错 file 点击图中圈起来的链接“恢复删除的存储帐户” file 请选择已删除的帐户, 并且单击恢复。 file 恢复完成后,我们会看到一个通知success~,恢复成功 file

Azure

【Azure DevOps系列】Azure DevOps多阶段构建

对于阶段的流水线其实是特别有用的,我们可以将构建、测试、或者说部署分为多个阶段进行处理。将您的应用程序部署到多个环境中,并从一个环境逐步过渡到另一个环境。例如,可以在CI中运行单元测试后自动部署到Dev环境,然后部署到运行集成测试的Test环境,然后手动部署到Production。 管道任务 这是一个最基础的管道任务,它在Microsoft托管代理上运行,同时他它采用ubuntu-16.04虚拟机镜像,执行后将会输出Hello world pool: vmImage: 'ubuntu-16.04' steps: - bash: echo Hello world 当然我们可以对此进行修改成如下方式: jobs: - job: myJob timeoutInMinutes: 10 pool: vmImage: 'ubuntu-16.04' steps: - …

ASP.NET Core Azure DevOps

【Azure DevOps系列】Azure DevOps使用Docker将.NET应用程序部署在云服务器

Docker持续集成 本章我们要实现的是通过我们往代码仓库push代码后,我们将每次的push进行一次docker自动化打包发布到docker hub中,发布到之后我将进行部署环节,我们将通过ssh方式将我们的.NET应用程序pull并run到我们的云服务器上。 Dockerfile 如下所示: #See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base WORKDIR /app EXPOSE 80 EXPOSE 443 FROM mcr. …

ASP.NET Core Azure DevOps Docker

【Azure DevOps系列】如何在Azure DevOps上构建Docker镜像(一)

创建Pipeline trigger: - master pool: vmImage: 'windows-latest' steps: - task: DotNetCoreCLI@2 inputs: command: 'restore' - task: DotNetCoreCLI@2 inputs: command: 'build' - task: DotNetCoreCLI@2 inputs: command: 'publish' publishWebProjects: true 通过如下任务从源文件夹存档文件,支持多种标准存档格式,包括.zip,.jar,.war,.ear,.tar,.7z等 - task: ArchiveFiles@2 inputs: rootFolderOrFile: '$(Build. …

Azure DevOps Docker

【Azure DevOps系列】Azure DevOps构建并发布.NET5应用程序

Azure App Service 独立部署 在Azure App Service中我们可以通过独立部署进行部署我们的.NET5应用程序,因为它不会依赖目标系统上的环境,并且所有组件(包括librarys和运行时)都与该应用程序一起使用,并且与其他应用程序进行隔离,这样其实我们更好的去控制应用程序运行的版本。 1、选择要发布的项目,鼠标右键单击项目,然后选择发布,会出现如下内容: file 2、接下来我们可以选择Linux应用服务或Windows应用服务 file 3、最后我们点击完成后选择部署模式此处选择独立模式 file 接下来我们发布应用程序即可 框架依赖 目前在Azure App Service中并没有为我们提供默认的.net5运行时环境,那么我们如何以框架依赖的形式使用.net5呢?看如下步骤 1、点击左侧的扩展 file 2、选择.NET5运行时,如下图所示 file 这样我们 …

Azure DevOps .NET5

【Azure DevOps系列】使ASP.NET Core应用程序托管到Azure Web App Service

使用Azure DevOps Project设置ASP.NET项目 file 我们需要先在Azure面板中创建一个Azure WebApp服务,此处步骤我将省略,然后点击部署中心如下图所示: file 此处我选择的是Azure Repos,当然大家也可以选择Github、Local Git、FTP file 我们需要提前在Azure DevOps中提前创建好应用程序,我这边已经提前创建好了名称为Blog . file 创建完后我们会在Azure DevOps Pipeline中看到默认为我们生成的管道信息,他是一个构建刚才那个应用程序并发布的过程。这个过程还是挺方便的,省去了我们一些的配置直接将这些给我们配置好,当然CD其实也配置好了,最终这个应用程序会发布到我们在在这之前创建的Azure WebApp中。 file file 通过如下该图我们可以看到已经可以访问通了,虽然 为错误页面其实 …

ASP.NET Core Azure DevOps

【Azure DevOps系列】Azure DevOps构建并发布Nuget程序包

在Azure DevOps中,管道可以用来构建解决方案,O(∩_∩)O哈哈~快万能了,本章主要介绍如何创建Nuget包并且将其发布到Nuget服务器的过程。 file 前面我创建了一个非常简单的类库,这边我不做过多叙述,接下来我们需要进行编辑csproj文件,当我们创建Nuget包时,我们将使用dotnet pack命令。这于传统的Nuget cli稍微有点不同,在传统的Nuget CLI中,我们创建nuspec文件并针对nuspec运行nuget pack。dotnet pack命令将从csproj创建一个nuspec文件,然后将代码打包到一个nupkg文件中,需要将一些关键信息添加到csproj文件中,以确保它可以正确的创建Nuget包。首先我们需要一个PackageId,这将是Nuget包本身的名称,根据我们要发布的位置这个名称必须是唯一的,接下来是Version,它将是已发布的软件 …

.NET Core Azure DevOps NuGet

【Azure DevOps系列】Azure DevOps生成代码覆盖率

前言 在做单元测试时,代码覆盖率可以作为我们衡量代码质量的一个指标,本章我们将使用Azure DevOps帮助我们生成代码覆盖率的结果.Azure DevOps构建管道还是具有代码覆盖率选项的,在Visual Studio测试平台在已经集成了Coverlet格式的数据收集器,它其实并不难,它是可以开箱即用的。获取Coverlet格式报告几乎都是可以拿命令行参数去解决的。 在单元测试项目中需要引入nuget包coverlet.collector,当然只需要在单元测试项目中引用他,下面这个代码片段是单元测试模板自动生成的,我只是引入了一个我自己的类库。 Project Sdk=Microsoft.NET.Sdk PropertyGroup TargetFrameworknetcoreapp3.1/TargetFramework IsPackablefalse/ …

.NET Core Azure DevOps