이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 5752|회답: 3

[출처] [실용 운영] 리디렉션에 의존하는 DLL의 서로 다른 버전을 참조하는 것 간의 충돌

[링크 복사]
2022-10-22 10:03:33에 게시됨 | | | |
요구사항: 프로젝트는 여러 서드파티 SDK를 참조해야 하며, 그중 일부는 :Newtonsoft.Json.dll와 같은 일반적으로 사용되는 DLL을 참조할 수 있습니다. 이로 인해 프로젝트 전체가 동일한 DLL의 서로 다른 버전을 참조하게 되고, 프로젝트는 동일한 DLL로 컴파일된 결과로 한 개의 파일만 출력됩니다.

간단한 DLL 버전 의존성 문제는 아래에서 참고할 수 있습니다:

.net/c# 참조 DLL 버전 충돌 해결
https://www.itsvse.com/thread-4818-1-1.html
참조:하이퍼링크 로그인이 보입니다.

참조된 DLL이 다른 버전일 뿐만 아니라 publicKeyToken의 버전이라면, 어떻게 해결해야 할까요? Newtonsoft.Json.dll의 경우, 프로젝트는 다른 버전과 publicKeyToken을 가진 파일을 참조합니다.



- Newtonsoft.Json.dll, version:12.0.0.0,publicKeyToken:30ad4fe6b2a6aeed
- Newtonsoft.Json.dll,version:4.0.0.0,publicKeyToken:null

간단한 참조 리다이렉트 설정만으로는 문제를 해결하지 못하며, 구성은 다음과 같습니다:

Newtonsoft.Json 버전 4.0.0.0에 의존하는 서드파티 SDK 메서드를 호출하면 다음과 같은 오류가 발생합니다:

파일 또는 어셈블리 "Newtonsoft.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null" 또는 그 의존성 중 하나를 불러오지 못했습니다. 발견된 어셈블리 매니페스트 정의가 어셈블리 참조와 일치하지 않습니다. (HRESULT의 예외:0x80131040)
해결책: bin 디렉터리 아래에 새 JSON4 폴더를 만들고, Newtonsoft.Json.dll 4.0.0.0 버전을 이 폴더에 넣은 뒤 다음과 같이 구성을 수정하세요:

(끝)





이전의:[실제 전투]. NET/C#은 MySqlBackup.NET 기반 MySQL 데이터베이스 백업을 구현합니다
다음:【실전 전투】홈 미디어 도커용 썬더 다운로드 및 DLNA 서비스 구축
2022-10-22 12:02:36에 게시됨 |
배우기 위해 배우세요
2022-10-24 10:59:38에 게시됨 |
이 방법은 효과가 있어요. 4.0과 6.0의 Newtonsoft.Json.dll이 신경 쓰입니다
2022-11-12 13:08:42에 게시됨 |
배우기 위해 배우세요
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com