Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio VS2013和Newtonsoft.Json 3.5.0.2_Visual Studio_Visual Studio 2013 - Fatal编程技术网

Visual studio VS2013和Newtonsoft.Json 3.5.0.2

Visual studio VS2013和Newtonsoft.Json 3.5.0.2,visual-studio,visual-studio-2013,Visual Studio,Visual Studio 2013,在安装了VS2013 RC和之前的预览版之后,MS似乎创造了这样一种情况:blend的集成导致旧版本的newtonsoft.json在构建过程中在搜索路径中排名靠前。导致此类错误的原因 类型“Newtonsoft.Json.Linq.JObject”是在 未引用。必须添加对程序集的引用 'Newtonsoft.Json,版本=3.5.0.2,区域性=中性, PublicKeyToken=null' 我一直在重命名: C:\Program Files (x86)\Microsoft Visual

在安装了VS2013 RC和之前的预览版之后,MS似乎创造了这样一种情况:blend的集成导致旧版本的newtonsoft.json在构建过程中在搜索路径中排名靠前。导致此类错误的原因

类型“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\\"

然而,一定有更好的办法吗?当然,不应该在VS二进制目录中找到gac中没有的依赖项,而不是我们自己的目标输出目录

使用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>

真的
..\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll

HintPath
将优先于其他搜索路径。

这个问题似乎是我当前雇主的一个稍微深奥的构建过程的局部问题,其中引用的库存储在构建输出文件夹中(通过maven)。这在搜索过程中的优先级很低,因此存在问题


解决方案,不要将引用放在输出文件夹中。不仅仅是这件事搞砸了

我在VS2013专业版上遇到了simelar问题

VS在考虑引用时在混合目录中查找json dll,即使指定了HintPath


解决方法可能是删除或重命名blend目录中的Json dll,我不是blend的密集用户,但process monitor在加载blend时未检测到Json dll的使用。。。当blend目录中没有可用的json dll时,引用会按预期工作,至少在我的例子中是这样

谢谢你的回答,我已经意识到为什么我们会有这个问题,正如在标记的答案中所解释的。