25

For a couple of months i had no issue generating the model from DB by deleting it and recreating it . After a pull from git, an issue has been occurred while trying to make the same process . After the second step (connection string creation with DB) there is no further proceed at the 3rd step and no connection string with the data base is being created at the app.config file.I have tried to test the connection with the database credentials and i am getting the following .

connection test failed

When i try to update specific tables from the model diagram as an alternative i get also the below :

System.Data.Entity.Core.EntityException: An error occurred while closing the provider connection. See the inner exception for details. ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.Memory, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies.

I have reinstalled Entity Framework and npgsql packages and tried to add all (the same) assemblies but with no success . Similar answers at Stack did not solve my issue . (I am allowed to work with the current versions with no further updates at VS or any of its packages.)

!Notice : i get all the appropriate data from my services when i use the API calls with the current model (proper communication with DB), but i cannot generate a new model from DB .

Any solutions ?

I am using

  • Windows 10

  • VS 2015

  • EntityFrameWork 6.2.0

  • Npgsql 3.1.1

  • .Net v.4.6.2

  • Asp.net

    Thanks in advance !

Prometheus
  • 999
  • 2
  • 15
  • 28
  • 1
    install the nuget for the system.memory package, maybe – TheGeneral Apr 04 '19 at 07:01
  • 1
    what sort of app is this? asp.net? – jazb Apr 04 '19 at 07:02
  • 2
    Have you tried adding the `System.Memory` package (https://www.nuget.org/packages/System.Memory/)? This could be caused through some inconsistencies in the Nuget packages, too (E.g. using 2 different packages with other versions as references from other packages). – FranzHuber23 Apr 04 '19 at 07:05
  • are you sure this started happening after a pull? can you see the changes in the .csproj of your project before the pull and after the pull? – Fakhar Ahmad Rasul Apr 04 '19 at 07:52
  • A similar error had been occurred after the pull , then i deleted the file and cloned it . Then the current one occurred – Prometheus Apr 04 '19 at 09:49

9 Answers9

22

If this error is appearing in an IIS app such as ASP.NET, then there is a high probability that you are missing a binding redirect in the web.config.

When you install from Nuget, you should see a binding redirect in the web.config.

If you deploy the application to another machine but fail to set up the binding redirect on that secondary machine, then this error can appear.

<dependentAssembly>
  <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
</dependentAssembly>
Brian Webster
  • 30,033
  • 48
  • 152
  • 225
  • 20
    I had a similar problem, after upgrading System.Memory from 4.5.4 to 4.5.5 using NuGet.The correct version, to put there is "4.0.1.1" for System.Memory "4.5.4" and "4.0.1.2" for System.Memory "4.5.5". – BitQuestions Jul 18 '22 at 07:22
  • 3
    Thank you so much for that @BitQuestions. Using "4.0.1.2" fixed this issue for me. But how did you figure that out? I've got a nuget ref to version 4.5.5, and the dll I end up with from nuget has version 4.6.31308.1. So where does version 4.0.1.2 come from? The only way I've found to figure it out is to add the nuget package and see what gets generated in the config files, but do you know a better way? I can't find any reference to "4.0.1.2" in the nuget package. – rrreee Jan 12 '23 at 15:49
  • 1
    Oops. I should have checked below to @AirLancer's post before commenting: ildasm can show it to you in the MANIFEST section which had this text: 4:0:1:2. This is not at all obvious. – rrreee Jan 12 '23 at 15:56
  • 1
    For those who still struggle with this (like me): What you see in Windows Explorer as file version, is different than the assembly version: https://stackoverflow.com/a/74602979/4609258 So file version 4.6.31308.1 in Explorer is assembly version 4.0.1.2 – Florian Straub May 25 '23 at 08:53
  • 1
    I had to use 4.0.1.2 as well. – Meekohi Jul 21 '23 at 14:20
8

Use IL Disassembler (ildasm.exe) to check if the version in your output directory matches the one in the error message.
Our software often runs into these kind of problems because different nuget packages require different versions together with a nasty mix of libraries not in nuget.
The need for different versions of the same library is not considered by the build process.

If the version mismatch is really the cause of your problem, you may be looking for binding redirects in you app.config to forward all older versions of that library to the newest one.
Something like this will need to be added to the <dependentAssembly> node of the library in question:

<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />

ildasm can usually be found here (depending on your Visual Studio version)
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\ildasm.exe

AirLancer
  • 1,258
  • 12
  • 19
4

Actually this answer come from a senior and he just helped to solve it! He said because the solution keep the old files -> this error, you can try to open each projects of solution and then remove folders 'bin' and 'obj' -> clean build again! Just an option you can try!

Fes Nguyen
  • 580
  • 5
  • 18
3

I just had a similar problem with a console app I'm working on. It was working fine last night. Today I got the error message "Could not load file or assembly 'System.Memory, Version=4.0.1.0...". I wasn't able to resolve this until I went into Configuration Manager for my Visual Studio Solution and changed Active solution platform from "Any CPU" to "x64". After rebuilding my program now works and no longer throws the exception.

John Verco
  • 1,357
  • 9
  • 6
2

For some reasons, the specific nugget package was not installed properly and I had not the option to compare it with an older file because I had messed up the backup file. I cloned the repository again(even if I had to discard some progress).

Steps:

  1. I had .Net version issues by downloading via nugget package manager so I had to do it manually.

  2. I have downloaded the .nupkg file from https://www.nuget.org/packages/System.Memory/

  3. Extracted the dll with a batch file found in https://gist.github.com/fex80/976ff887acb825171de6

  4. Copied to the bin folder of the proper project .

  5. Rebuild the project and at last, it worked.

Dharman
  • 30,962
  • 25
  • 85
  • 135
Prometheus
  • 999
  • 2
  • 15
  • 28
1

For me, it was as simple as removing System.Memory from my references, then adding it back again. Strange, I don't know why this happened.

DAG
  • 867
  • 10
  • 16
1

Goto NuGet and Upgrade the System.Memory package to the next version fixed it for me!!!

System.IO.FileLoadException HResult=0x80131040 Message=Could not load file or assembly 'System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=ccxxxxxxxxx....' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) Source=Microsoft.Extensions.Primitives StackTrace: at Microsoft.Extensions.Primitives.StringSegment.Equals(String text, StringComparison comparisonType)

1

My application had multiple versions installed. I updated all projects in the solution to the latest version of System.Memory and everything was fine!

0

From a quick google search I found this : https://github.com/GrillPhil/ServerlessRealtimeDemo/issues/1

I don't know if this is out to date, but have you tried setting your Target version to Windows 10, version 1803 (10.0; Build 17134) and Min version to Windows 10 Fall Creators Update (10.0; Build 16299) in your project properties?

enter image description here

Fisken
  • 189
  • 5
  • We still do not know which kind of project the OP has. This might be useful depending on the project type (E.g. UWP, ASP.Net, ...) – FranzHuber23 Apr 04 '19 at 07:17
  • 1
    My mistake , i have seen the above solution which does not fit for me since i am using ASP.Net . – Prometheus Apr 04 '19 at 07:48