Microsoft MVP성태의 닷넷 이야기
개발 환경 구성: 348. ASP.NET Core 2.1 Preview 버전 적용 방법 [링크 복사], [링크+제목 복사]
조회: 11137
글쓴 사람
정성태 (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)
12495정성태1/19/202111026웹: 40. IIS의 HTTP/2 지원 여부 - h2, h2c [1]
12494정성태1/19/202110190개발 환경 구성: 522. WSL2 인스턴스와 호스트 측의 Hyper-V에 운영 중인 VM과 네트워크 연결을 하는 방법 [2]
12493정성태1/18/20218590.NET Framework: 1009. .NET 5에서의 네트워크 라이브러리 개선 (1) - HTTP 관련 [1]파일 다운로드1
12492정성태1/17/20217980오류 유형: 695. ASP.NET 0x80131620 Failed to bind to address
12491정성태1/16/20219570.NET Framework: 1008. 배열을 반환하는 C# COM 개체의 메서드를 C++에서 사용 시 메모리 누수 현상 [1]파일 다운로드1
12490정성태1/15/20219153.NET Framework: 1007. C# - foreach에서 열거 변수의 타입을 var로 쓰면 object로 추론하는 문제 [1]파일 다운로드1
12489정성태1/13/202110137.NET Framework: 1006. C# - DB에 저장한 텍스트의 (이모티콘을 비롯해) 유니코드 문자가 '?'로 보인다면? [1]
12488정성태1/13/202110363.NET Framework: 1005. C# - string 타입은 shallow copy일까요? deep copy일까요? [2]파일 다운로드1
12487정성태1/13/20218891.NET Framework: 1004. C# - GC Heap에 위치한 참조 개체의 주소를 알아내는 방법파일 다운로드1
12486정성태1/12/20219810.NET Framework: 1003. x64 환경에서 참조형의 기본 메모리 소비는 얼마나 될까요? [1]
12485정성태1/11/202110524Graphics: 38. C# - OpenCvSharp.VideoWriter에 BMP 파일을 1초씩 출력하는 예제파일 다운로드1
12484정성태1/9/202111175.NET Framework: 1002. C# - ReadOnlySequence<T> 소개파일 다운로드1
12483정성태1/8/20218376개발 환경 구성: 521. dotPeek - 훌륭한 역어셈블 소스 코드 생성 도구
12482정성태1/8/20219787.NET Framework: 1001. C# - 제네릭 타입/메서드에서 사용 시 경우에 따라 CS8377 컴파일 에러
12481정성태1/7/20219526.NET Framework: 1000. C# - CS8344 컴파일 에러: ref struct 타입의 사용 제한 메서드파일 다운로드1
12480정성태1/6/202112109.NET Framework: 999. C# - ArrayPool<T>와 MemoryPool<T> 소개파일 다운로드1
12479정성태1/6/20219486.NET Framework: 998. C# - OWIN 예제 프로젝트 만들기
12478정성태1/5/202111109.NET Framework: 997. C# - ArrayPool<T> 소개파일 다운로드1
12477정성태1/5/202113512기타: 79. github 코드 검색 방법 [1]
12476정성태1/5/202110163.NET Framework: 996. C# - 닷넷 코어에서 다른 스레드의 callstack을 구하는 방법파일 다운로드1
12475정성태1/5/202112753.NET Framework: 995. C# - Span<T>와 Memory<T> [1]파일 다운로드1
12474정성태1/4/202110301.NET Framework: 994. C# - (.NET Core 2.2부터 가능한) 프로세스 내부에서 CLR ETW 이벤트 수신 [1]파일 다운로드1
12473정성태1/4/20219096.NET Framework: 993. .NET 런타임에 따라 달라지는 정적 필드의 초기화 유무 [1]파일 다운로드1
12472정성태1/3/20219388디버깅 기술: 178. windbg - 디버그 시작 시 스크립트 실행
12471정성태1/1/20219848.NET Framework: 992. C# - .NET Core 3.0 이상부터 제공하는 runtimeOptions의 rollForward 옵션 [1]
12470정성태12/30/202010043.NET Framework: 991. .NET 5 응용 프로그램에서 WinRT API 호출 [1]파일 다운로드1
... 31  32  33  34  35  36  37  38  39  40  41  42  43  44  [45]  ...