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 대응 버전인가...)

 

 

구글링을 해 보니 최근에 올라온 글이 하나 보였다.

>> 참조: https://stackoverflow.com/questions/74472659/exception-info-system-platformnotsupportedexception-eventlog-access-is-not-sup

 

Exception Info: System.PlatformNotSupportedException: EventLog access is not supported on this platform

I am getting the above mentioned error, when I tried to start the worker service on the target machine (windows server). I tried everything, but without any success. I am still getting the error. I'm

stackoverflow.com

역시... 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>

 

끝.

 



Posted by 떼르미
,


자바스크립트를 허용해주세요!
Please Enable JavaScript![ Enable JavaScript ]