nuget Newtonsoft.Json 업그레이드가 되지 않습니다.

안녕하세요

현재 dotnetcore 3.1 웹프로젝트를 리눅스에 올려서 사용중입니다.

우연히 nuget 쪽을 보다가

Newtonsoft.Json 를 사용중인데, 이게 12.0.3 을 사용중입니다.

근데, 보안 이슈가 있다고 업그레이드를 하라고 메시지가 떠서

업드레이드를 진행했습니다. 13.0.1 로 업그레이드 해서

개발 피시에서는 잘 작동을 합니다.

그래서 qa 서버에 올렸는데,

System.IO.FileNotFoundException: Could not load file or assembly ‘Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed’. The system cannot find the file specified.

이런 식으로 파일을 못 찾아서 작동을 제대로 되지 않는 문제가 있습니다.

MS 누겟 서버 로 잘 연결되어 있어서 curl 해보니 인덱스? 들은 다 잘 받아 옵니다…

qa서버에는 svn을 설치 해서 해당 서버에서 빌드해서 사용하고 있는데,

빌드는 잘 되는거 같습니다. 특별한 에러 없이 잘 돌아가는데,

누겟 화일을 저렇게 못 찾으니 작동 불가 서버가 되버려서 고민입니다.

리눅스도 초보고 해서 급하게 질문 드려봅니다.

참고로 빌드 명령어는 아래와 같습니다.

/usr/bin/dotnet publish /trunk/src/WebServer.csproj -c Release -r linux-x64 -p:PublishSingleFile=true --self-contained false

읽어 주셔서 감사 합니다.

1개의 좋아요

이런 종류의 오류는 command를 잘게 나누어서 수동으로 해보면서 잡는게 빠를 것 같아요.
말씀하신 qa 서버에서 dotnet restore, dotnet build, dotnet publish를 각각 나누어서 해보시는게 어떨까요?
특히 dotnet restore시 패키지를 잘 가져오는지 유심히 보는게 좋을 것 같습니다.

그리고 말씀하신 최신 버전인 13.0.1과 에러 메시지의 13.0.0.0이 다른건 우연이겠죠?
솔루션내 프로젝트들의 csproj 파일에 기록된 Newtonsoft.Json 버전들도 확인이 필요하겠네요.

2개의 좋아요

일단 말씀하신 사례와 비슷한 케이스를 하나 찾았습니다.
여기서는 다운그레이드로 해결했다고 하네요.

위와 별개로 빌드된 폴더 내부에 Newtonsoft.json.dll이 있는지 확인해보시겠어요?
NuGet Pack 할 때 저 dll만 빠져서 패킹하는 경우가 있어서 빌드 후 확인해보는 것이 좋을 것 같아요.

4개의 좋아요

답변 감사합니다. 차례대로 해보겠습니다. 저도 화일버젼이 다른게 넘 이상해서 유심히 보던중였습니다.~

2개의 좋아요

넵 개발 피시에서는 잘 화일이 떨어지는데, qa 서버에서만 안그러는게…넘 희안해서요 차분히 읽어보고 진행해보겠습니다.

1개의 좋아요