在VS 2012中运行Windows Phone项目时,我收到此错误:
{System.IO.FileNotFoundException: Could not load file or assembly 'Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.
File name: 'Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'
at MobileConnection.SSCClient.SSCConnection.GetHostNameAndPort()
at MobileConnection.SSCClient.SSCConnection.InitializeSSCConnection(Boolean runningState)}
.csproj文件中的相应条目是:
<Reference Include="Newtonsoft.Json">
<HintPath>..\packages\Newtonsoft.Json.4.5.11\lib\sl4-windowsphone71\Newtonsoft.Json.dll</HintPath>
</Reference>
并且,在packages.config中:
<package id="Newtonsoft.Json" version="4.5.11" targetFramework="wp80" />
我调试了一段时间,通过nuget重新安装了newtonsoft.json包 但是对我有用的解决方案是将'私有'属性设置为'真'。
更新了.csproj文件中的条目:
<Reference Include="Newtonsoft.Json">
<HintPath>..\packages\Newtonsoft.Json.4.5.11\lib\sl4-windowsphone71\Newtonsoft.Json.dll</HintPath>
<Private>True</Private>
</Reference>
我无法理解它是如何工作的或问题是什么。 msdn文档中的描述对http://msdn.microsoft.com/en-us/library/vstudio/bb629388.aspx没有多大帮助。
答案 0 :(得分:1)
运行程序时,它会从输出目录中输入dll。最初,Newtonsoft.Json
未被复制到输出目录,但通过将Private
指定为True
,您告诉Visual Studio将Newtonsoft.Json
dll复制到输出文件夹中与您的程序。
为完整起见,有关Private的文档:
可选布尔值。指定是否应将引用复制到输出文件夹。此属性与Visual Studio IDE中引用的“复制本地”属性匹配。