相关疑难解决方法(0)

790
推荐指数
9
解决办法
42万
查看次数

无法加载文件或程序集'Newtonsoft.Json,Version = 9.0.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed'或其依赖项之一

我有一个以前在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

27
推荐指数
7
解决办法
10万
查看次数

在.net中绑定重定向问题

我有一个名为"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

.net binding assemblies

13
推荐指数
2
解决办法
2万
查看次数

System.net.http.formatting导致Newtonsoft.json出现问题

我的Windows服务与MVC项目处于同一解决方案中.

MVC项目使用SignalR Client的引用,它需要Newtonsoft.Json v6 +

Windows服务使用System.Net.Http.Formatting,这需要Newtonsoft.Json版本4.5.0.0.

我认为这不会是一个问题,因为我可以在我的App.Config中使用绑定重定向,但是我得到一个错误

System.Net.Http.Formatting.dll中发生未处理的"System.IO.FileLoadException"类型异常

附加信息:无法加载文件或程序集'Newtonsoft.Json,Version = 4.5.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)

我的app.config有以下内容:

<dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/>
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)

我自己添加了它,它不起作用,我也尝试使用nuget包管理器卸载并重新安装Json.Net,但无济于事

c# asp.net asp.net-mvc json.net

11
推荐指数
2
解决办法
1万
查看次数

无法与Microsoft.AspNet.WebApi.Client一起加载文件或程序集'Newtonsoft.Json,Version = 6.0.0.0

我正在编写一个类库(称为mylibrary.dll),它本身引用了更多的库 - >使用以下DLL(从package.config获取版本概述):

<package id="EntityFramework" version="6.0.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net45" />
  <package id="Newtonsoft.Json" version="8.0.2" targetFramework="net45" />
  <package id="System.Data.SQLite" version="1.0.99.0" targetFramework="net45" />
  <package id="System.Data.SQLite.Core" version="1.0.99.0" targetFramework="net45" />
  <package id="System.Data.SQLite.EF6" version="1.0.99.0" targetFramework="net45" />
  <package id="System.Data.SQLite.Linq" version="1.0.99.0" targetFramework="net45" />
  <package id="UnmanagedExports" version="1.2.7" targetFramework="net45" />`
Run Code Online (Sandbox Code Playgroud)

mylibrary.dll是一个包装器,它将一些托管代码公开给需要非托管代码的调用者(换句话说,预期本机DLL条目的位置).

如果我通过NUnit测试方法测试mylibrary.dll的公共接口,则根本没有错误.但是,如果我通过targetapplication.exe的相同界面调用相同的方法,我会认识到以下情况:

  • 测试方法A:调用一个简单的JSON来进行字符串操作(使用Newtonsoft.JSON库)并运行得很好.
  • 测试方法B:调用执行PostAsync的方法

var vResponseObject = await vResponse.Content.ReadAsAsync <ApiResponse <T >>().ConfigureAwait(false);

在幕后,ReadAsAsync调用使用Newtonsoft.JSON反序列化类型的对象<T>.看来这个函数是生成错误的函数:

无法加载文件或程序集'Newtonsoft.Json,Version = 6.0.0.0,Culture = neutral,PublicKeyToken = ...........'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)

HTTPContent.ReadAsAsync由Microsoft.AspNet.WebApi.Client(扩展System.Net.Http)提供,它本身依赖于Newtonsoft.JSON版本6.0.x(请参阅此程序包的NuGet依赖项).未安装版本6.0.x,而是安装版本8.0.x. 因此需要在app.config中管理的可装配重定向:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
 <dependentAssembly>
  <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
 </dependentAssembly> …
Run Code Online (Sandbox Code Playgroud)

c# dll reference json.net .net-assembly

5
推荐指数
1
解决办法
7337
查看次数