Microsoft MVP성태의 닷넷 이야기
개발 환경 구성: 348. ASP.NET Core 2.1 Preview 버전 적용 방법 [링크 복사], [링크+제목 복사],
조회: 18478
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

ASP.NET Core 2.1 Preview 버전 적용 방법

오늘(2018-01-09) 기준으로 ASP.NET Core 정식 버전은 2.0.1입니다. 로드맵 상으로는,

ASP.NET Core Schedule and Roadmap
; https://github.com/aspnet/Home/wiki/Roadmap

2.1 정식 버전이 올해 1 또는 2분기에 나올 예정이지만 2.1 Preview 버전의 경우에는 이미 daily-build를 통해 공개하고 있습니다. 만약 2.1 Preview 버전을 적용하고 싶다면 아래의 문서에 설명한 방법에 따라,

ASP.NET Core
; https://github.com/aspnet/Home

설정을 하면 됩니다.




위의 글을 정리해 보면, 우선 .NET Core 2.1 관련 개발 환경을 인식하기 위해 .NET Core SDK 2.1 Preview 버전을 설치해야 합니다.

dotnet/cli 
; https://github.com/dotnet/cli#installers-and-binaries

Latest Daily Build - Windows x64
; https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x64.exe

Latest Daily Build - Windows x86
; https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x86.exe

이후의 설명을 위해 간단하게 .NET Core (또는 .NET Framework) 기반으로 ASP.NET Core 웹 응용 프로그램을 만들어 보겠습니다.

aspnet_preview21_1.png

(2018-01-09 기준) 기본적으로 ASP.NET Core 프로젝트는 다음과 같이 2.0.1 버전으로 의존성을 가집니다.

aspnet_preview21_2.png

이에 2.1 Preview 적용을 하려면 NuGet.Config의 내용을 수정해야 하는데 시스템 전역적으로 설정하고 싶다면 다음의 경로에 있는 NuGet.Config을 수정하면 됩니다.

%APPDATA%\NuGet\NuGet.Config

또는, 지역적으로 설정하고 싶다면 대상 솔루션(.sln) 파일과 같은 폴더에 다음과 같은 NuGet.Config을 만들어 줍니다.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <clear />
        <add key="AspNetVNext" value="https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json" />
        <add key="NuGet.org" value="https://api.nuget.org/v3/index.json" />
    </packageSources>
</configuration>

이제, ASP.NET Core 웹 프로젝트의 참조를 수정해야 하는데, .csproj 파일을 열어 버전을 다음과 같은 식으로 직접 편집해 줍니다.

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Folder Include="wwwroot\" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.1.0-*" />
  </ItemGroup>

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.1" />
  </ItemGroup>

</Project>

여기서 한가지 문제가 있는데, 아직(2018-01-09) Microsoft.AspNetCore.All의 패키지가 완벽하지 않아서 다음과 같이 2개의 개별 참조로 바꿔야 합니다.

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Folder Include="wwwroot\" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore" Version="2.1.0-*" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.0-*" />
  </ItemGroup>

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.1" />
  </ItemGroup>

</Project>

물론, .csproj 파일을 직접 수정하지 않고 NuGet 패키지 관리자 콘솔에서 다음과 같은 식의 명령을 내려도 됩니다.

Install-Package Microsoft.AspNetCore.Mvc -Version 2.1.0-preview1-28031 -Source https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json

하지만 이런 경우에는 -Version 인자에 정확한 버전을 표기해야 하는데, daily-build에 저런 식으로 버전을 명시해서 유지 보수하는 것은 그다지 권장되지 않으므로 .csproj 파일을 수정해 "2.1.0-*"과 같은 식으로 지정하는 것이 더 권장됩니다.

참고로, 버전 문자열은 다음의 사이트에서 구할 수 있습니다.

dotnet-core - Microsoft.NETCore.App
; https://dotnet.myget.org/feed/dotnet-core/package/nuget/Microsoft.NETCore.App

aspnetcore-dev - Microsoft.AspNetCore
; https://dotnet.myget.org/feed/aspnetcore-dev/package/nuget/Microsoft.AspNetCore

나중에 만약 2.2 Preview 버전이 나와 그것을 적용하고 싶다면 이 글의 설명을 따르면 됩니다. 즉, 2.2 SDK Preview를 설치하고 NuGet.Config을 맞춰준 후 .csproj의 버전을 "2.2.0-*"과 같이 바꾸는 식입니다.




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 1/9/2018]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 31  32  33  34  [35]  36  37  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
13066정성태5/23/202214687Windows: 205. Windows 11 - Windows + S(또는 Q)로 뜨는 작업 표시줄의 검색 바가 동작하지 않는 경우
13065정성태5/20/202215916.NET Framework: 2017. C# - Windows I/O Ring 소개 [2]파일 다운로드1
13064정성태5/18/202215317.NET Framework: 2016. C# - JIT 컴파일러의 인라인 메서드 처리 유무
13063정성태5/18/202215679.NET Framework: 2015. C# - 인라인 메서드(inline methods)
13062정성태5/17/202216591.NET Framework: 2014. C# - async/await 그리고 스레드 (4) 비동기 I/O 재현 [1]파일 다운로드1
13061정성태5/16/202215367.NET Framework: 2013. C# - FILE_FLAG_OVERLAPPED가 적용된 파일의 읽기/쓰기 시 Position 관리파일 다운로드1
13060정성태5/15/202218912.NET Framework: 2012. C# - async/await 그리고 스레드 (3) Task.Delay 재현파일 다운로드1
13059정성태5/14/202216831.NET Framework: 2011. C# - CLR ThreadPool의 I/O 스레드에 작업을 맡기는 방법 [1]파일 다운로드1
13058정성태5/13/202216818.NET Framework: 2010. C# - ThreadPool.SetMaxThreads 사용법 [1]
13057정성태5/12/202218297오류 유형: 812. 파이썬 - ImportError: cannot import name ...
13056정성태5/12/202214406.NET Framework: 2009. C# - async/await 그리고 스레드 (2) MyTask의 호출 흐름 [2]파일 다운로드1
13055정성태5/11/202218829.NET Framework: 2008. C# - async/await 그리고 스레드 (1) MyTask로 재현 [11]파일 다운로드1
13054정성태5/11/202215693.NET Framework: 2007. C# - 10진수 숫자를 담은 문자열을 숫자로 변환하는 방법 [11]파일 다운로드1
13053정성태5/10/202215322.NET Framework: 2006. C# - GC.KeepAlive 메서드의 역할
13052정성태5/9/202215442.NET Framework: 2005. C# - 생성한 참조 개체가 언제 GC의 정리 대상이 될까요?
13051정성태5/8/202214802.NET Framework: 2004. C# XingAPI - ACF 검색 결과로 구한 CSV 파일을 통해 퀀트 종목 찾기파일 다운로드1
13050정성태5/6/202215066.NET Framework: 2003. C# - COM 개체의 이벤트 핸들러에서 발생하는 예외에 대한 CLR의 특별 대우파일 다운로드1
13049정성태5/6/202212948오류 유형: 811. GoLand - Error: Cannot find package
13048정성태5/6/202215106오류 유형: 810. "ASUS TUF GAMING B550M-PLUS (WI-FI)" 모델에서 블루투스 장치가 인식이 안 되는 문제
13047정성태5/6/202214608오류 유형: 809. Speech Recognition could not start
13046정성태5/5/202215138.NET Framework: 2002. C# XingAPI - ACF 파일을 이용한 퀀트 종목 찾기(t1857)
13045정성태5/5/202215507.NET Framework: 2001. C# XingAPI - 주식 종목에 따른 PBR, PER, ROE 구하는 방법(t3341 예제)
13044정성태5/4/202214280오류 유형: 808. error : clang++ exited with code 127
13043정성태5/3/202213358오류 유형: 807. C# - 닷넷 응용 프로그램에서 Informix DB 사용 시 오류 메시지 정리
13042정성태5/3/202214560.NET Framework: 2000. C# - 닷넷 응용 프로그램에서 Informix DB 사용 방법파일 다운로드1
13041정성태4/28/202214638개발 환경 구성: 642. Informix 데이터베이스 docker 환경 구성
... 31  32  33  34  [35]  36  37  38  39  40  41  42  43  44  45  ...