Windows 10 + Visual Studio 2019 개발 환경에서...
잘 쓰고 있던 .NET Core 3.1 프로젝트 디버깅이 갑자기 안됐다.
아래와 같은 오류를 뿜어내면서.
Exception Info: System.PlatformNotSupportedException: EventLog access is not supported on this platform |
뜬금없이 웬 이벤트 로그???
처음 실행하다 이런 오류가 나왔으면 이것저것 뭔가 라이브러리가 잘못 설치된 건지,
아니면 호환성 관련 코드를 잘못 사용한 건지 한참 고민을 했을 법 했다.
그런데, 바로 며칠 전까지도 문제없이 디버깅이 잘 됐던 프로젝트이고
이후에도 실제 배포환경인 Linux(Ubuntu) Docker 환경에는 배포돼서 잘 돌아가고 있던 프로젝트이기도 했으니
뭔가 외부적 환경 변화가 요인이었을 것으로 짐작!
알고 보니 프로젝트에 참조했던 NuGet 라이브러리 하나를 최근에 업데이트하면서
기본 Microsoft.Extensions.Hosting 관련 라이브러리까지 최신으로 업데이트하는 바람에 생긴 문제였다.
원래 쓰던 라이브러리가
- Microsoft.Extensions.Hosting v3.1.5
- Microsoft.Extensions.Hosting.Systemd v3.1.5
- Microsoft.Extensions.Hosting.WindowsServices v3.1.5
였는데, 이번에 업데이트되면서
- Microsoft.Extensions.Hosting v7.0.0
- Microsoft.Extensions.Hosting.Systemd v7.0.0
- Microsoft.Extensions.Hosting.WindowsServices v7.0.0
이렇게 버전이 대폭 올라가 버렸다. (.NET 7 대응 버전인가...)
구글링을 해 보니 최근에 올라온 글이 하나 보였다.
역시... 7.0.0은 윈도우 환경에서 문제가 있단다.
그래서 버전을 내렸다. 6.0.0으로.
디버깅 잘 된다!
그렇지만, 뭔가 좀 아쉽다...
MacOS나 다른 환경에서는 디버깅이 잘 되는데 굳이 버전을 내릴 필요가...
다른 환경에서는 7.0.0을 쓰고 윈도우 디버깅 환경에서만 6.0.0을 쓸 방법이 없을까? 하고 찾아 봤다.
프로젝트 파일 편집 모드로 들어가서 아래와 같이 수정하면 된다.
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting" Version="6.0.0" Condition=" '$(Configuration)|$(OS)' == 'Debug|Windows_NT' " />
<PackageReference Include="Microsoft.Extensions.Hosting.Systemd" Version="6.0.0" Condition=" '$(Configuration)|$(OS)' == 'Debug|Windows_NT' " />
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="6.0.0" Condition=" '$(Configuration)|$(OS)' == 'Debug|Windows_NT' " />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="7.0.0" Condition=" '$(Configuration)|$(OS)' != 'Debug|Windows_NT' " />
<PackageReference Include="Microsoft.Extensions.Hosting.Systemd" Version="7.0.0" Condition=" '$(Configuration)|$(OS)' != 'Debug|Windows_NT' " />
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="7.0.0" Condition=" '$(Configuration)|$(OS)' != 'Debug|Windows_NT' " />
</ItemGroup>
끝.
'Tech: > 일반·기타' 카테고리의 다른 글
M365 서비스 계정: 회의실 일정 연동 (0) | 2022.12.08 |
---|---|
Google Workspace 서비스 계정: 회의실 리소스 캘린더 API 연동 (0) | 2022.12.08 |
Git 명령어 응답이 늦을 때 (1) | 2022.11.11 |
Windows-Mac 협업 시 Git 설정 팁 등등... (0) | 2022.09.07 |
비접촉 공간터치 기술이 상용화되다! (0) | 2022.08.18 |