2013-10-22 4 views
5

는 VS2013 RC를 설치 한 데 이전에 미리보기, MS는 블렌드의 통합 동안 검색 경로에서 높은 결국 newtonsoft.json의 이전 버전을 유발하는 상황을 만든 것 같다 짓다. 오류VS2013 및 Newtonsoft.Json 3.5.0.2

유형 'Newtonsoft.Json.Linq.JObject'의 유형을 유발하는 이 참조되지 않도록 어셈블리에 정의되어 있습니다. 조립품 'Newtonsoft.Json, 버전 = 3.5.0.2, 문화 = 중립, PublicKeyToken = null'에 대한 참조를 추가해야합니다.

나는 이름을 변경했습니다 :

이 등록 키 누킹 않는 한, 작동
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Blend\Newtonsoft.Json.dll 

:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx\Expression Blend MWD.Extensibility] 
@="C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\Blend\\" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx\Expression Blend MWD.Interaction] 
@="C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\Blend\\" 

그러나 더 나은 방법이 있어야한다? 분명히 gac에없는 종속성은 VS 바이너리 디렉토리에서 우리 자신의 목표물 출력물에서 발견되어서는 안됩니다.

답변

0

문제는 참조 라이브러리 (Maven을 통해) 빌드 출력 폴더에 저장됩니다 내 현재의 고용주에 약간 난해한 빌드 프로세스 로컬 보인다. 이것은 검색 프로세스에서 우선 순위가 매우 낮으므로 문제가됩니다.

솔루션, 출력 폴더에 대한 참조를 넣지 마십시오. 이것뿐 아니라 나사도 있습니다!

2

사용 NuGet는 Newtonsoft.Json를 설치합니다. 이것은 다음과 같은 프로젝트 파일에 추가하게됩니다 :

<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> 
    <Private>True</Private> 
    <HintPath>..\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> 
</Reference> 

HintPath은 다른 검색 경로보다 우선합니다.

+0

답장을 보내 주셔서 감사합니다. 그 이유는 표시된 대답에 설명 된대로 문제가 발생하는 이유입니다. – DanH

1

내가 VS2013, 전문 릴리스 버전으로 simelar 문제가 있었다. HintPath가 지정된 경우에도 참조를 고려할 때

VS는 json으로 DLL의 조화 디렉토리에서 찾습니다.

블렌드 디렉토리에서 Json dll을 삭제하거나 이름을 바꿀 수있는 대안이 될 수 있습니다. 블렌드가 집중되는 사용자는 아니지만 프로세스 모니터는 블렌드가로드되는 동안 Json dll의 사용을 감지하지 못합니다 ... 그리고 json dll이 없을 때 블렌드 디렉토리에서 refrence가 적어도 내 경우에는 가능합니다.