相关疑难解决方法(0)

定位的程序集的清单定义与程序集引用不匹配

我试图在C#Windows窗体应用程序(Visual Studio 2005)中运行一些单元测试,我收到以下错误:

System.IO.FileLoadException:无法加载文件或程序集"Utility,Version = 1.2.0.200,Culture = neutral,PublicKeyToken = 764d581291d764f7"或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)**

在x.Foo.FooGO()

在Foo.cs中的x.Foo.Foo2(String groupName_):第123行

在FooTests.cs中的x.Foo.UnitTests.FooTests.TestFoo():第98行**

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

我查看我的参考资料,我只参考Utility version 1.2.0.203(另一个是旧的).

关于我如何弄清楚试图引用这个旧版本的DLL文件的任何建议?

此外,我认为我的硬盘上甚至没有这个旧组件.有没有工具可以搜索这个旧的版本化程序集?

c# dependencies compiler-errors reference version

715
推荐指数
20
解决办法
93万
查看次数

Visual Studio会使用旧版本覆盖NewtonSoft.Json.DLL

当我构建除包含引用的网站之外的任何其他项目时,Visual Studio正在覆盖我在项目引用和NuGet包文件中配置的NewtonSoft.Json.DLL的正确版本.

好.这是场景:

我有一个后端服务和网站的解决方案.该网站在.NET 4.5上运行,并配置了NuGet以引入Newtonsoft.Json.DLL的6.0.1版本.

<package id="Newtonsoft.Json" version="6.0.1" targetFramework="net45" />
Run Code Online (Sandbox Code Playgroud)

这会将dependenAssembly绑定添加到web.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)

我可以毫无问题地构建和运行这个网站.

我最近更新了从.NET 4.0到.NET 4.5的所有类库和后端服务.更新后,每当我构建其中一个类库或运行/调试后端服务时,网站就无法运行.

Could not load file or assembly 'Newtonsoft.Json' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Run Code Online (Sandbox Code Playgroud)

我跟踪了这​​一事实,当重建其中一个类库或从Visual Studio运行/调试后端服务时,Newtonsoft.Json.DLL会被旧版本的文件 - 版本4.5.11覆盖.由于显式的dependentAssembly绑定,在我访问网站之后,我得到上面提到的"无法加载..."错误.

如果我只想运行后端服务或网站中的一个或另一个,那就没关系,但我必须同时运行它们才能使我的应用程序正常运行.但由于这个错误,我无法在网站或网站崩溃的同时运行后端服务.

如何防止Visual Studio覆盖DLL?

请注意,我只6.0.1跨整个解决方案的参考设置(即没有参考任何地方到4.5.11).在网站中,我将'Copy Local'设置为true,并将'Specific Version'设置为对Newtonsoft.Json.DLL为true.

c# dll .net-4.5 visual-studio-2012 visual-studio-2013

37
推荐指数
4
解决办法
1万
查看次数