Which is the right version for Fasterflect using SNAP? - autofac

When using autofac with snap, I encounter the following exception:
Test method Halcyon.Mall.Logging.LogCallTests.FooLogCallInterceptor_ShouldBeCalled threw exception:
Autofac.Core.DependencyResolutionException: An exception was thrown while executing a resolve operation. See the InnerException for details. ---> System.IO.FileLoadException: Could not load file or assembly 'Fasterflect, Version=2.0.1.0, Culture=neutral, PublicKeyToken=a64e1179c81b1e25' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
The autofac (2.5.2.830) is installed as a nuget package manually.
The fasterflect (2.0.4429.39723) is installed automatically as a dependent package of SNAP (1.7.3)

I had the same problem today with Snap 1.7.7 -- the latest version. Snap.StructureMap appears to require Fasterflect 2.0 but a NuGet of Snap 1.7.7 retrieves the latest Fasterflect, which is 2.1. I was able to solve it by downloading Fasterflect 2.0.2 using NuGet in a separate project (PM> Install-Package Fasterflect -version 2.0.2), then deleting the existing reference to Fasterflect from my main project, then browsing to and adding a file-based reference to the older Fasterflect 2.0.2 DLL.

Related

Unable to resolve "Could not load file or assembly" exception in .net framework application

After upgrading the FluentValidation NuGet package in my WPF application from version 11.0.2 to 11.4.0, I began to receive the following error when attempting to execute my test suite:
System.IO.FileLoadException
HResult=0x80131040
Message=Could not load file or assembly 'System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Source=FluentValidation
My NuGet packages folder contains the system.threading.tasks.extensions package for versions 4.4.2 and 4.5.4, but not 4.2.0.0.
I am not sure why I am getting this error, or how to resolve it.
I have reviewed the answers to questions by others having similar problems, but without finding a solution.

Crystal Reports Nuget 13.0.4001 generates an log4net error

Our Visual studio project is a 64-bit website which requires the crystal reports runtime installed. We would like to include nuget packages to avoid installing the runtime.
I installed the CrystalReports.Engine nuget and 16 nuget/references are also applied including log4net v1.2.10. The project files reference "Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821". This is a pretty old version of the log4net.
When I run our website and try to generate a report, I get the exception "Could not load file or assembly 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040...". It appears that the libraries are looking for the 32-bit version of log4net.
The nuget packages include 13.0.30.3805, not the latest 13.0.32 libraries. After doing some searching on-line, I am concerned that these nugets are not SAP generated nugets.
This leads me to a few questions:
Are these SAP Crystal Reports nugets?
How do they distinguish between 32-bit and 64-bit projects?
Why are these nugets not using the latest version of the libraries.
How do I resolve this error? (everything I have tried, doesn't fix the problem)

NU1608: Detected package version outside of dependency constraint: DevExpress.ExpressApp.PivotChart.Win

I want to upgrade my xaf General Ledger Project to use the latest version of XAF.
Looking at the module project I thought I would start by running the following in the Package Management Console
update-package DevExpress.ExpressApp.Core.All
update-package DevExpress.ExpressApp.PivotChart.Win
update-package DevExpress.ExpressApp.PivotChart
update-package DevExpress.ExpressApp.PivotGrid
update-package DevExpress.ExpressApp.PivotGrid.Win
update-package DevExpress.ExpressApp.ReportsV2.Win
update-package DevExpress.ExpressApp.ReportsV2
However I get Errors as follows
PM> update-package DevExpress.ExpressApp.Core.All
No package updates are available from the current package source for project 'UnitTestProject1\SBD.GL.Module.Tests.csproj'.
Restoring packages for D:\dev\SBD.GeneralLedger\SBD.GL.Cli\SBD.GL.Cli.csproj...
NU1608: Detected package version outside of dependency constraint: DevExpress.ExpressApp.PivotChart.Win 18.2.5 requires DevExpress.ExpressApp.PivotChart (= 18.2.5) but version DevExpress.ExpressApp.PivotChart 18.2.6 was resolved.
NU1608: Detected package version outside of dependency constraint: DevExpress.ExpressApp.PivotGrid.Win 18.2.5 requires DevExpress.ExpressApp.PivotGrid (= 18.2.5) but version DevExpress.ExpressApp.PivotGrid 18.2.6 was resolved.
NU1608: Detected package version outside of dependency constraint: DevExpress.ExpressApp.ReportsV2.Win 18.2.5 requires DevExpress.ExpressApp.ReportsV2 (= 18.2.5) but version DevExpress.ExpressApp.ReportsV2 18.2.6 was resolved.
Note that the Cli project does contain a reference to the Win project
And the Win project does reference dll's created by the Cli project.
Maybe that is the reason

EF Core Driver cannot load netstandard or one of its dependencies in LinqPad 5

I created a .NET Full Framework class library using EF Core v 2.2.1 and downloaded the EF Core driver v 2.x for Linqpad 5 (5.36.03), and when I try to create a new connection to the class library DLL, I get the following error message:
Could not load file or assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependenceis. The system cannot find the file specified.
I have clicked the 'Restore nuGet Dependencies' and it gives me the message 'No NuGet dependencies detected'.
Any thoughts?
Did exactly what #magicandre1981 suggested and targted 4.7.2 for my class library. That fixed it!

NuGet packages, their DLLs and assembly binding errors

Take a package like Microsoft.AspNetCore.Http.Abstractions, it depends on Microsoft.AspNetCore.Http.Features by this line in its nuspec:
<dependency id="Microsoft.AspNetCore.Http.Features" version="2.1.1" exclude="Build,Analyzers" />
with the 2.1.1 meaning >= 2.1.1, in NuGet parlance.
So I take a dependency on Microsoft.AspNetCore.Http.Abstractions, version 2.1.1 exactly in my project.
Currently, there is both a version 2.1.1 and 2.2 of Microsoft.AspNetCore.Http.Features in NuGet, so my project ends up with Microsoft.AspNetCore.Http 2.1.1 and Microsoft.AspNetCore.Http.Features 2.2.
But then, I run my project and I get assembly binding errors, because the actual Microsoft.AspNetCore.Http.Abstractions 2.1.1 DLL depends on Microsoft.AspNetCore.Http.Features 2.1.1.
Summary: Nuspec says >= 2.1.1, DLL is bound to == 2.1.1.
This seems to be true for almost all MS packages.
Is this a monumental cock-up, or am I doing something wrong? I'm having to traverse the dependency graphs myself and lock myself to each exact version which each DLL needs, because the nuspecs don't appear to be properly configured.
What's going on?
Example binding error:
Unable to load one or more types: Could not load file or assembly 'Microsoft.AspNetCore.Http.Features, Version=2.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
(because I've been given 2.2 by NuGet).