我有一个以前在Windows 8.1上使用VS 2013构建的WinJS项目.
最近我通过创建一个空白的Javascript Universal windows 10项目将该项目升级到Universal Windows 10,然后从旧项目添加了我的所有文件.
我有Windows运行时组件以及SQLite的类库.
我添加了通用Windows运行时组件和通用类库,并将我的所有文件从旧项目复制到各自的位置.
不知何故,我设法删除所有构建错误.
我安装了所有必需的SQLite-net,SQLite for Universal Windows Platform,Newtonsoft等.
但是当我运行应用程序并在Windows运行时组件中调用Native方法时,它会产生一些奇怪的错误:
An exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.ni.dll but was not handled in user code.
Additional information: Could not load file or assembly 'Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.
Newtonsoft版本是:9.0.1
我的Windows运行时组件的project.json文件如下:
{
"dependencies": {
"Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0",
"Newtonsoft.Json": "9.0.1"
},
"frameworks": {
"uap10.0": {}
},
"runtimes": {
"win10-arm": {},
"win10-arm-aot": {}, …
Run Code Online (Sandbox Code Playgroud) c# visual-studio win-universal-app windows-10 windows-10-universal
我正面临下面的错误
无法加载文件或程序集"Newtonsoft.Json,Version = 7.0.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed"或其中一个依赖项.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)
我可以在Web.config中看到下面的内容
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
所以我改成了
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.1.0" />
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
在packeges.config中,我可以看到以下条目
但我仍面临同样的问题.请帮忙
我正在使用c#4.0来读取已签名的请求我正在使用以下代码
FacebookApp fap = new FacebookApp();
fap.AppId = "789485219211963"; // App ID
fap.AppSecret = "365ee9f5823698536767d608cf572a49";
string requested_Data = Request.Form["signed_request"];
FacebookSignedRequest fsr = fap.ParseSignedRequest(requested_Data);
IDictionary<string, string> myDic = fsr.Dictionary;
string name = myDic["name"];
string algorithm = myDic["algorithm"];
Response.Write(requested_Data + "<br>" + algorithm + "<br>" + name + "<br>");
Run Code Online (Sandbox Code Playgroud)
但在突出显示的行上我收到了以下异常
无法加载文件或程序集"Newtonsoft.Json,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed"或其中一个依赖项.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)
我下载了Newtonsoft.Json.发布1而不是发布2但它仍然无法正常工作.有人可以帮助我解决这个问题,也请指导我以我的方式阅读签名请求是否正确如果不是请指定正确的方法.
谢谢:
我有一个名为"MyAssembly"的类库,它在内部引用a.dll,版本3.1.1.0的b.dll; 我已经构建了一个超出MyAssembly.dll的项目.在另一个系统(框)上,我创建了一个Web应用程序项目并引用了MyAssembly.dll.新系统有新版本的a.dll和b.dll 4.0.0; 我在web.config中使用绑定重定向,如下所示.但仍然无法编译Web应用程序.它说缺少程序集引用a.dll,版本3.1.1.0.
任何人都可以帮助解决这个问题吗?
谢谢,Suresh
我想在这里做一些非常简单的事情,而且我已经坚持了几个小时.我觉得我已经筋疲力尽了几乎所有的选择.
我所要做的就是:
JsonConvert.SerializeObject(model)
但是,产生的错误是:
抛出异常:mscorlib.dll中的"System.IO.FileLoadException"
附加信息:无法加载文件或程序集'Newtonsoft.Json,Version = 10.0.0.0,Culture = neutral,PublicKeyToken = 982hs0cm1kd'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)
但是,在我的项目中,我引用的是10.0.0.0版.更具体地说,10.0.2.0.当我检查项目的bin文件夹时,我可以验证10.0.2.0 dll是否存在.在packages.config中,我有<package id="Newtonsoft.Json" version="10.0.2" targetFramework="net452" />
我尝试过的事情:
C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root
我真的被困在这里,我可以看到这是一个常见的问题,因为我找到了许多不同的方法来解决它,但到目前为止还没有一个工作.
有任何想法吗?
我刚刚在 winforms 应用程序中发现的东西
我的应用程序对 Web Api 服务进行 http 调用,如下所示
HttpClient _client = new HttpClient();
_client.Timeout = new TimeSpan(0, 3, 0);
_client.BaseAddress = new Uri("http://Myserver/MyApp");
_client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = _client.PostAsJsonAsync("api/Addin", newObject).Result;
Run Code Online (Sandbox Code Playgroud)
没什么特别的,但是一旦你通过 nuget 安装 Newtonsoft.Json (V6.0.3)
突然我在 HttpResponseMessage 代码行上收到 stackOverflow 错误。删除Newtonsoft,问题就解决了。
问题是我要使用该库在表单中的其他位置序列化/反序列化数据
我的解决方法是使用不同的库,我只是使用 System.Runtime.Serialization.Json;但这仍然很奇怪,不是吗?
我还应该补充一点,这是 dotnet v4.0(不是 4.5),我的应用程序是一个在 MsWord 中作为附加组件运行的 VSTO COM 对象
我怀疑 Newtonsoft 可能存在错误
我注意到我们经常在项目中遇到程序集版本冲突,90%的时候它是Newtonsoft.Json的底部.对于Newtonsoft.Json冲突有很多问题,例如臭名昭着的"无法加载文件或汇编'Newtonsoft.Json,Version = 6.0.0.0".搜索"汇编'Newtonsoft.Json,版本= 6.0.0.0"提出了37个问题 - 其中很多都被高度赞成.或者这个约为4.5.0.0.
是否有任何解释为什么这种情况经常发生在该库而不是其他库中,为什么它是如此一致的汇编版本冲突源?它肯定比其他库更频繁地发生.
我正在尝试在Web API解决方案中解析类库中的JSON文件.它是一个普通的C#类库,而不是Portable类.
我已经尝试过这里提到的每一个答案,但它仍然不起作用!我一直得到同样的错误:
无法加载文件或程序集'Newtonsoft.Json,Version = 8.0.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed'或其中一个依赖项.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)":"Newtonsoft.Json,Version = 8.0.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed
这是代码:
public IList<BranchRM> AllBranches()
{
var result = new List<BranchRM>();
var dataSourcePath = AppDomain.CurrentDomain.BaseDirectory + "Data/branches.json";
var dataAsText = File.ReadAllText(dataSourcePath);
if (string.IsNullOrEmpty(dataAsText)) return result;
var branchList = JsonConvert.DeserializeObject<List<Branch>>(dataAsText);
result = AutoMapper.Mapper.Map<List<BranchRM>>(branchList);
return result;
}
Run Code Online (Sandbox Code Playgroud) 这一个错误让我疯了.
我在我的一个名为BaseServices的类库中安装了SendGrid NuGet包,它依赖于Newtonsoft.Json v7.0.1,所以它将它安装在我的packages文件夹中并引用它.
在类库中,我有这个绑定重定向:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
在ASP.NET MVC应用程序的web.config中,即使用我的类库的客户端应用程序,我有一个小于v6版本的程序集绑定重定向指向Newtonsoft.Json库的v6,如下所示:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" culture="neutral"
publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
当我运行我的电子邮件发送BaseServices库中的代码时,我收到此错误:
线程0x1a4c已退出,代码为0(0x0).System.IO.FileLoadException:无法加载文件或程序集Newtonsoft.Json,版本= 7.0.0.0,文化=中性公钥= 30ad4fe6b2a6aeed'或它的一个依赖.定位的程序集的清单定义与程序集引用不匹配.(从HRESULT异常:0x80131040)文件名: 'Newtonsoft.Json,版本= 7.0.0.0,文化=中性公钥= 30ad4fe6b2a6aeed' 在SendGrid.Helpers.Mail.Mail.Get()在BaseServices.EmailService.SendAsync(EmailMessage消息)在MyFolder\BaseServices\EmailService.cs中:第39行
===预绑定状态信息===日志:DisplayName的= Newtonsoft.Json,版本= 7.0.0.0,文化=中性公钥= 30ad4fe6b2a6aeed(完全指定的)LOG:应用平台=文件:/// MyFolder文件/网络/日志:初始PrivatePath = MyFolder\Web\bin调用程序集:SendGrid,Version = 7.0.3.0,Culture = neutral,PublicKeyToken = 4f047e93159395ca.===日志:此绑定在默认加载上下文中启动.日志:使用应用程序配置文件:MyFolder\Web\web.config日志:使用主机配置文件:C:\ Users\computer\Documents\IISExpress\config\aspnet.config日志:使用C:\ Windows\Microsoft中的计算机配置文件.NET \框架\ v4.0.30319\CONFIG\machine.config中.日志:后政策参考:Newtonsoft.Json,版本= 7.0.0.0,文化=中性公钥= 30ad4fe6b2a6aeed LOG:尝试新的URL文件下载:/// C:/用户/计算机/应用程序数据/本地/温度/临时ASP.NET Files/root/ef9cacdf/e639667a/Newtonsoft.Json.DLL.日志:新的URL文件的尝试下载:/// C:/用户/计算机/应用程序数据/本地/温度/ ASP.NET临时文件/根/ ef9cacdf/e639667a/Newtonsoft.Json/Newtonsoft.Json.DLL.日志:尝试下载新的URL文件:///MyFolder/Web/bin/Newtonsoft.Json.DLL.警告:比较程序集名称导致不匹配:主要版本错误:无法完成程序集的设置(hr = 0x80131040).探测终止.
c# ×7
json.net ×5
.net ×4
json ×3
asp.net ×1
asp.net-mvc ×1
assemblies ×1
binding ×1
c#-4.0 ×1
dependencies ×1
nuget ×1
reference ×1
windows-10 ×1