본문 바로가기
Entity Framework Core

.NET CLI] .NET 7, Entity Framework Core 오프라인 설치

by Fastlane 2023. 7. 21.
728x90
반응형

회사 PC는 인터넷도 안되고, Visual Studio 2022도 없다... 

회사 PC에서 EF Core 사용할 수 있도록 세팅해보자. 

 

1. VS Code 설치 

설치파일 회사PC로 옮겨서 설치하자 

 

2. .NET SDK 설치 

https://dotnet.microsoft.com/en-us/download/dotnet/7.0

가장 최신인 7.0.306 SDK 설치파일 회사PC로 옮겨서 설치하자 

터미널을 열어 설치된 .NET SDK정보를 확인해보자

C:\Users\TEST>dotnet --info
.NET SDK:
 Version:   7.0.306
 Commit:    

런타임 환경:
 OS Name:     Windows
 OS Version:  
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\7.0.306\

Host:
  Version:      7.0.9
  Architecture: x64
  Commit:       

.NET SDKs installed:
  7.0.306 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 7.0.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 7.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 7.0.9 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

Other architectures found:
  None

Environment variables:
  Not set

global.json file:
  Not found

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download

3. ASP.NET Core 웹앱(MVC) 프로젝트 생성

PS D:\myproject\EFCoreDemo> dotnet new sln
"솔루션 파일" 템플릿이 성공적으로 생성되었습니다.

PS D:\myproject\EFCoreDemo> dotnet new mvc -o WEB
"ASP.NET Core 웹앱(Model-View-Controller)" 템플릿이 성공적으로 생성되었습니다.

PS D:\myproject\EFCoreDemo> dotnet sln add WEB
'WEB\WEB.csproj' 프로젝트가 솔루션에 추가되었습니다.

PS D:\myproject\EFCoreDemo> cd WEB
PS D:\myproject\EFCoreDemo\WEB> dotnet build
  복원할 프로젝트를 확인하는 중...
  복원할 모든 프로젝트가 최신 상태입니다.
  WEB -> D:\myproject\EFCoreDemo\WEB\bin\Debug\net7.0\WEB.dll

빌드했습니다.
    경고 0개
    오류 0개

PS D:\myproject\EFCoreDemo\WEB> dotnet run
빌드하는 중...
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:5236

4. EF Core Nuget Packages 설치

EF Core를 사용하는데 필요한 Packages는 NuGet packages로 설치해야 한다. 따라서, 인터넷이 되는 PC에서 동일하게 프로젝트 설정한 다음, 패키지를 설치한다. 

 

설치해야하는 패키지는 DB system과 필요한 EF Core 기능에 따라 다르다. 일반적으로 다음의 packages를 설치한다. 

  • Microsoft.EntityFrameworkCore : EF Core basic functionality
  • Microsoft.EntityFrameworkCore.Relational : Common relational database functionality
  • Microsoft.EntityFrameworkCore.SqlServer : SQL Server, SQL Azure 를 위한 Database providers
  • dotnet-ef,  Microsoft.EntityFrameworkCore.Design : cross-platform command line tooling

차례대로 설치해보자. 

  • Microsoft.EntityFrameworkCore : EF Core basic functionality
dotnet add package Microsoft.EntityFrameworkCore
  • Microsoft.EntityFrameworkCore.Relational : Common relational database functionality
dotnet add package Microsoft.EntityFrameworkCore.Relational
  • Microsoft.EntityFrameworkCore.SqlServer : SQL Server, SQL Azure 를 위한 Database providers
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
  • dotnet-ef,  Microsoft.EntityFrameworkCore.Design : cross-platform command line tooling

EF Core 관련작업 예를들면, database migration 이나 기존 database를 기준으로 EF Core model을 생성하는 작업을 하려면 tools을 설치해야 한다. 

 

Visual Studio을 사용한다면, 아래 package를 설치해서 Package Manager Console tools을 설치하면 된다. 

Install-Package Microsoft.EntityFrameworkCore.Tools

.NET CLI를 사용할 예정이면, 아래 package를 설치해서 .NET Core command-line interface tools을 설치하면 된다. command는 dotnet ef로 시작한다. dotnet ef는 global 또는 local로 설치할 수 있지만, 대부분 global로 설치하는 것을 선호한다. 

dotnet tool install --global dotnet-ef

%USERPROFILE%\.dotnet\tools 경로에 설치되므로 tools폴더 통째로 인터넷이 되지 않는 PC에 매칭되는 경로에 복사붙여넣기 한다. 

설치확인해보자

PS D:\myproject\EFCoreDemo> dotnet ef

                     _/\__       
               ---==/    \\      
         ___  ___   |.    \|\    
        | __|| __|  |  )   \\\   
        | _| | _|   \_/ |  //|\\ 
        |___||_|       /   \\\/\\

Entity Framework Core .NET Command-line Tools 7.0.9

Usage: dotnet ef [options] [command]

Options:
  --version        Show version information
  -h|--help        Show help information
  -v|--verbose     Show verbose output.
  --no-color       Don't colorize output.
  --prefix-output  Prefix output with level.

Commands:
  database    Commands to manage the database.
  dbcontext   Commands to manage DbContext types.
  migrations  Commands to manage migrations.

Use "dotnet ef [command] --help" for more information about a command.
dotnet add package Microsoft.EntityFrameworkCore.Design

5. package 옮기기

%USERPROFILE%\.nuget\packages 폴더 통째로 인터넷 연결안된 PC로 옮겨서 해당 경로에 복사한다. 

6. packgae 참조세팅

WEB.csproj 파일 아래와 같이 package 참조구문 추가한다.

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

  <PropertyGroup>
    <TargetFramework>net7.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.9" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.9">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="7.0.9" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.9" />
  </ItemGroup>

</Project>

 

728x90
반응형

댓글