I am trying to write a 'hello world' application with a dependency to an assembly of a CAD software (SpaceClaim). I add the assembly SpaceClaim.Api.V12.dll to my references and build without problems. When I try to run the application I get the following error:
Unhandled Exception: System.IO.FileLoadException: Could not load file
or assembly 'SpaceClaim.Api.V12, Version=12.1.11373.0,
Culture=neutral, PublicKeyToken=7210645d4d5e3a39' or one of its
dependencies. The located assembly's manifest definition does not
match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'SpaceClaim.Api.V12, Version=12.1.11373.0, Culture=neutral,
PublicKeyToken=7210645d4d5e3a39'
---> System.IO.FileLoadException: Could not load file or assembly 'SpaceClaim.Api.V12, Version=12.1.8703.0, Culture=neutral,
PublicKeyToken=7210645d4d5e3a39' or one of its dependencies. The
located assembly's manifest definition does not match the assembly
reference. (Exception from HRESULT: 0x80131040) File name:
'SpaceClaim.Api.V12, Version=12.1.8703.0, Culture=neutral,
PublicKeyToken=7210645d4d5e3a39'
(this error message is also discussed here)
After checking the GAC, I can see that there is an assembly with same strong name with the one I am referencing (Version=12.1.8703.0). However when I open these two with a disassembler (ILSpy), I see that they target different runtimes, the one I am referencing targets .NET 2.0 and the one in the GAC .NET 4.0.
I would like to ignore the one in the GAC and pick from the local directory the one that targets NET 2.0. Apparently, simply copying it into the same folder with the executable is not enough. From what I 've read so far here and here, in order to do this, one needs to 'remove the signing' from the assembly. I don't have much experience with .NET so I am wondering, is this something that I can do with 3rd party assembly and if yes how? Or what other alternatives I have? The two assemblies have the same strong name so putting them both in the GAC is not an option as far as I understand.
Related
I have a C# project to create a dll and the project is referencing the System.ComponentModel.Composition assembly. Building the project does not create any errors, but when running the application, it shows with the built dll and throws this error:
Exception ::Could not load file or assembly 'System.ComponentModel.Composition.resources, Version=4.0.0.0, Culture=en-NZ, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.
I am not sure what this error means but I think that the Culture is not supposed to be en-NZ, I think it should be neutral. Is there a way to change that to neutral?
I have a solution which runs pretty nice on 2 machines, but when I try to deploy same solution on specific machine which runs Windows Server 2012(irrelevant because another two instances also run on Windows Server 2012) it keep me throwing:
Could not load file or assembly 'Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
I've checked all my dependencies and they seem to be ok, may it be something with ASP.NET on machine?
*All my project use Newtonsoft.Json, Version=9.0.1
Newtonsoft.Json is not part of .Net framework. You need to provide it yourself.
The exception you see means either:
Newtonsoft.json.dll is not part of your deployment and 2 machines where your solution works have this dll somehow installed
You have 2 conflicting versions of this dll and the solution does not know which one to pick.
So first check that this dll is present in your bin folder. If not, put it there.
I'm getting this issue while running test client
Could not load file or assembly 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
I found many solutions like adding both versions, or enable logging in registry but nothing worked for me. I'm just stuck over here.
Anyone has any idea regarding this then please help me out. Any kind of help will be appreciated.
I expect you have a reference mismatch between two different assemblies with one expecting version 1.2.10.0 of log4net and another some other version. One version of the log4net assembly is copied to your output directory when your solution is built and then when your program is launched the .exe loader is then complaining because it isn't able to load the version of particular assembly (or .exe) is expecting. Upgrading / downgrading your assemblies to use the same version of log4net should solve the problem.
Under the references for the class library I changed the removed the old version of dll and added the new dll. When ever my business logic library tries to create an object to this library it gives me the following error:
eConnect = new EConnectIntegrationGroup(cnString);
Could not load file or assembly 'Microsoft.Dynamics.GP.eConnect.Serialization, Version=12.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located
assembly's manifest definition does not match the assembly reference. (Exception from HRESULT:
0x80131040
your business logic is still looking for the dll with version 12.0.0.0. Is this the only place where the dll is used or do other projects also have this dll added to references?
I keep getting this error:
Could not load file or assembly 'Facebook, Version=5.4.1.0, Culture=neutral, PublicKeyToken=58cb4f2111d1e6de' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Can anyone help me?
I faced a similar problem once when there were two different assembly versions available and when the assemblies were copied across projects with some inconsistently set assembly references. The versions got mixed up and the error appeared.
But take a look a this and links provided there, it should give you some suggestions or ideas:
The located assembly's manifest definition does not match the assembly reference