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

읽어 주셔서 감사 합니다.

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

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

좋아요 1

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

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

좋아요 3

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

좋아요 1

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