깃허브 소스 Azure Wep App 서버에 배포하기 (feat .Net Core)
Updated:
.Net 기반 웹사이트가 갑자기 서비스가 중단이 되다.
갑자기 잘만 작동하던 웹 서버가 먹통이 되었다. 서둘러서 소스코드를 점검하고 배포를 하는 순간 ‘빌드 실패’ 응? 깃허브 리포지토리를 Azure 웹 서버에 배포를 하고 나서 코드를 일절 변경한 적이 없는데 다시 배포를 하니 실패라고 한다. Action 탭에 들어가 빌드(Build)와 배포(Deploy)의 워크플로우를 살펴 보았다.
(예전에는 안뜨던 에러가 뜬다)
위에서 보이듯이 총 두 개의 Warning 과 세 개의 Error 가 발생했다. 우선 에러 내용 부터 살펴 보도록 하자.
- 42행: Microsoft.EntityFrameworkCore.Tools.Dotnet 을 찾을 수가 없다고 한다.
- 43행: Microsoft.VisualStudio.Web.CodeGeneration.Tools 를 찾을 수 없다고 한다.
- 44행: 파라미너 ‘path’의 값이 null 일 수 없다고 한다.
위 세 개의 에러는 루트에 위치한 DotnetCoreServer.csproj 에서 발생하였다. 이 파일은 Gradle 로 Spring 프로젝트를 생성을 해보았다면 build.gradle 처럼 라이브러리와 빌드 설정을
해주는 파일이라고 보면 된다. 하지만 사실 위의 Error 들을 해결하려면 Warning 을 해결하면 된다. 2.1 이상의 버전부터는 별도로 위의 패키지(혹은 레퍼런스)를 따로 설치할 필요없이 자동으로
해준다.
즉, .net core 2.0 버전을 업데이트 해주면 된다. 나 같은 경우에는 2.1 로 업데이트 해주었다. 한번에 최신 버전으로 업데이트(6.0 이상) 해줄 수 있겠지만 시간상 나중에 하기로 하였다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<OutputType>Exe</OutputType>
<!-- <TargetFramework>netcoreapp2.0</TargetFramework> -->
<TargetFramework>netcoreapp2.1</TargetFramework> <!-- 추가 -->
<RuntimeIdentifiers>win10-x64;osx.10.11-x64</RuntimeIdentifiers>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\"/>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0"/>
<PackageReference Include="Microsoft.AspNetCore" Version="2.0.0"/>
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.0"/>
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="2.0.0"/>
<PackageReference Include="MySqlConnector" Version="0.22.0"/>
</ItemGroup>
<!--
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0"/>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
</ItemGroup>
-->
</Project>
그리고 여기서 잠깐!! 한가지 더 확인 해주어야 할 것이 있다. Azure 에서 배포 소스를 깃허브 소스로 설정할 때에 빌드 런타임 스택과 업데이트 할 .net core의 버전을 호환시켜야 한다.
무슨 소리냐 하면 아래 사진처럼 해주어야 한다는 것이다.
(이렇게 하고 저장)
빌드와 배포에 성공하였다.
Leave a comment