회사 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>
'Entity Framework Core' 카테고리의 다른 글
.NET Core MVC] EF Core - 1.기본설정(Model, DbContext) (0) | 2023.07.27 |
---|---|
Entity Framework Core] Reverse engineering (scaffolding) (0) | 2023.07.25 |
Entity Framework Core] Custom Migrations Operations (0) | 2023.07.20 |
Entity Framework Core] 팀 개발 환경에서 Migrations (0) | 2023.07.20 |
Entity Framework Core] Migrations 반영 (0) | 2023.07.20 |
댓글