티스토리 뷰
일단, .NET Framework 기반의 WinForm을 .NET 5로 마이그레이션 하는 방법은 MS의 공식문서로 존재한다.
이 포스팅은 기본적으로 MS의 공식문서 가이드를 따라 간다.
.NET 5로 마이그레이션 후 기존 UI와 조금씩 틀어지는 부분이 발생하였고, 이부분은 어쩔 수 없이 개인이 하나씩 확인하며 수정해야 할 듯 싶다.
(Windows Forms 데스크톱 앱을 .NET 5로 마이그레이션하는 방법)
[ 마이그레이션 과정 ]
0. 준비
1) VisualStudio 2019
2) 프로젝트 백업
1. packages.config
1) 솔루션 탐색기에서 packages.config을 검색
2) packages.config 파일 우클릭 > PackageReference로 마이그레이션
3) 솔루션내 모든 packages.config 파일에 적용
2. 프로젝트파일
1) 프로젝트 각각 개별로 작업해야 함
2) 마이그레이션할 프로젝트 우클릭 > 프로젝트 언로드
3) 프로젝트 파일(*.csproj) 편집
- 기존 내용은 복사하여 따로 보관
- .NET 5용 내용으로 기본 셋팅
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net5.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
</Project>
- 복사했던 기존 내용중 RootNamespace와 AssemblyName 태그를 복사하여 PropertyGroup 태그 하위에 추가
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net5.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<RootNamespace>GTLauncher</RootNamespace>
<AssemblyName>GTLauncher</AssemblyName>
</PropertyGroup>
</Project>
- 복사했던 기존 내용중 모든 ItemGroup 태그들을 Project 태그 하위에 추가
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
......
</PropertyGroup>
<ItemGroup>
<Compile Update="MainForm.cs" />
<Compile Update="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
.
.
.
</Project>
- Ctrl+F로 ProjectReference를 검색하여 ProjectReference 태그 하위에 Project와 Name 태그 삭제
<!-- 기존 -->
<ProjectReference Include="..\MatchingGame.Logic\MatchingGame.Logic.csproj">
<Project>{36b3e6e2-a9ae-4924-89ae-7f0120ce08bd}</Project>
<Name>MatchingGame.Logic</Name>
</ProjectReference>
<!-- 변경 -->
<ItemGroup>
<ProjectReference Include="..\MatchingGame.Logic\MatchingGame.Logic.csproj" />
</ItemGroup>
- Ctrl+H로 Compile Include를 Compile Update로 전체 변경
- Ctrl+F로 <Reference Include를 검색하여 나오는 모든 태그 삭제
ItemGroup 태그의 하위 태그가 없을시 해당 ItemGroup 태그도 삭제
4) 마이그레이션할 프로젝트 우클릭 > 프로젝트 다시 로드
3. App.Config의 supportedRuntime 태그 삭제
[ 마이그레이션 후 빌드 시 유의사항 ]
1. 결과물은 기존 bin\Release\ 경로에서 bin\Release\net5.0-windows\ 경로로 변경되어 생성 됨
2. 프로그램명.runtimeconfig.json 파일이 생성되며, 같이 배포 해야함
'C#' 카테고리의 다른 글
C#: FileName(string)에 WildCard 검색 적용 (0) | 2021.02.28 |
---|---|
C#: WinForm TitleBar에 DarkMode 적용하기 (0) | 2021.02.20 |
C#: Label 더블클릭시 Text가 복사되는 현상(버그?) 처리 (0) | 2021.02.07 |
C#: List Swap (by index) (0) | 2021.01.30 |
C#: List Shuffle 구현 방법 (0) | 2021.01.30 |
- Total
- Today
- Yesterday