2013-02-25 4 views
2

MVC3 사이트에서 Nhibernate를 사용하고 있습니다. 데이터베이스에 4 개의 테이블과 데이터베이스에서 데이터를 가져 오기 위해 사이트에서 사용하는 서비스가 있습니다. 지금 나는이 오류가 무엇입니까 :파일 또는 어셈블리 'Newtonsoft.Json'을로드 할 수 없습니다.

파일이나 어셈블리를로드 할 수 없습니다 'Newtonsoft.Json, 버전 = 3.5.0.0을, PublicKeyToken = 30ad4fe6b2a6aeed 문화 = 중립'또는 해당 종속성 중 하나. 찾은 어셈블리의 매니페스트 정의가 어셈블리 참조와 일치하지 않습니다. (HRESULT에서 예외는 : 0x80131040)

I는 NuGet하여 Newtonsoft.Json를 설치하는 대신에 그것의 DLL에 대한 참조를 추가함으로써이 문제를 해결하는 것을 발견, 그래서 그했고 그 문제를 해결했다. 내가 모두 잘 작동합니다. 그러나 스테이징 서버에 게시하고 업로드 할 때 위에서 언급 한 오류가 발생합니다.

또한 내 서비스에는 3 가지 방법이 있지만 하나만 오류를 제공하므로 나머지는 정상적으로 작동합니다. 그리고 심지어 하나의 방법은 로컬에서 잘 작동합니다. 스테이징을 할 수 없습니다.

편집 : 이제 NuGet에서 Newtonsoft.Json을 제거한 다음 Project의 Bin 폴더에 보관 된 Newtonsoft.Json dll에 대한 참조를 추가했습니다. 다시 로컬로 작동하지만 서버에는 작동하지 않습니다.

왜 그렇습니까?

답장을 보내주십시오.

감사합니다.

+0

귀하의 스테이징 서버에 appharbor와 같은 배포 서비스를 사용하고 계시지 않으셨습니까? 그렇게 할 경우 .dll을 bin 폴더 외부에 넣어야합니다. – atbebtg

답변

0

시스템에서 로컬로 작동하지만 서버에서 작동하지 않는 경우. 나는 당신이 당신의 서버에서 이용할 수없는 당신의 PC에 설치된 어떤 라이브러리를 가지고 있다고 가정 할 것이다.

누락 될 수있는 라이브러리는 프로젝트에서 참조를보고 로컬로 설치 한 라이브러리를 사용하고있는 라이브러리를 참조하는지 확인하십시오.

+0

하지만 Newtonsoft.Json에게는 오류가 발생합니다. 그리고 그것의 dll은 Bin 폴더에 있습니다. NuGet이 만든 Packages.config 파일에는 dll에 대한 정보도 들어 있습니다. – Deeps

+0

DLL의 버전이 동일한 지 확인할 수 있습니까? 또한 Newtonsoft.Json을 여러 프로젝트 (또는 타사 라이브러리)에서 사용하는 경우 모두 동일한 버전의 DLL이 필요한지 확인하십시오. 어쩌면이 대답도 도움이 될 수 있습니다. http://stackoverflow.com/questions/9426723/could-not-load-file-or-assembly-newtonsoft-json-dll – Deruijter

+0

예 DLL을 검사했습니다. 그들은 같은 버전입니다. 두 프로젝트에서 Newtonsoft.Json을 사용했으며 둘 다 같은 버전입니다. – Deeps

관련 문제