ServiceStack Redis Client Expecting Older version of ServiceStack.Common - redis

I just NuGetted ServiceStack.Redis 3.1.3 but as its dependencies it also gets ServiceStack.Common and ServiceStack.Text 3.1.6
Now when I build the application everything is OK.
But, when I run the application some of the Redis Client methods execute properly but some of them e.g. (RedisClient.GetAllKeys) gives throws the exception
Could not load file or assembly 'ServiceStack.Common, Version=1.0.4336.27526, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
Then i removed all the dll's and nuget packgage config, and explicitly did a NuGet ServiceStack.Common -Version 3.1.3 and got it. But then when i tried to NuGet ServiceStack.Redis -Version 3.1.3 it automatically removed the 3.1.3 version of Common and downloaded the 3.1.6 version !!!
Arrrghhh, I hate over intelligent installers.
How do I fix this ?
Does the publisher of ServiceStack even know about this issue ??

Ok ! Found the Issue.
I was trying to use ServiceStack from a console application and it was configured to build in "ClientProfile" mode.
ServiceStack internally references System.Web which wasn't being accessible at runtime.
I switched the Application to Build using the full framework mode and everything works ok now.
Thanks anyways mythz !

Nope, ServiceStack was not aware of this issue. Though we'd like to know what's causing it.
I've tried a fresh install of ServiceStack.Redis and it works as expected.
To remove your dlls you need to go into NuGet package manager and finding the installed ServiceStack.Redis Package and clicking un-install. This should ensure the next install of the Project downloads it from the NuGet website and doesn't re-use your dirty dll cache.
Failing that ensure you have the latest version of NuGet and that your old NuGet caches are cleared. i.e. find and delete the NuGet /packages folder.

Related

Installing UCommerce on Sitefinity and it Throws NewtonSoft.json Error

So, Here is the actual issue. I have created a sitefinity project through Sitefinity Project Manager and after running it, i open the project files into my visual Studio 2019. I checked till here that everything is working fine and it was. Now when i go for installing Ucommerce on the project through Nuget packages. The package is Ucommerce.Sitefinity after installation it simply throws this error whenver i run it. Even when i removed the package the problem was still there.
Its like the Ucommerce package corrupts the project completely.. I have tried resolving it by searching on the internet but somehow it seems the solutions which worked for others are not for me as my project is not a simple asp.net project rather a sitefinity project, I may be wrong. Most of the solutions which i tried are from this thread here : Could not load file or assembly 'Newtonsoft.Json' or one of its dependencies. Manifest definition does not match the assembly reference But as i said all in vain. Please help me with this as i need to get started with my development on the ucommerce for a project. Thanks in advance.
Also After removing the nuget package the Values for the Version changed from 6.0.0.0 to 12.0.0.0 .
Try manually deleting all files from the bin folder and then build again.
Probably there was an assembly that referenced an old version of the newtonsoft dll.
Finally, check the runtime bindings in web.config for the version of newtonsoft dll there.
Make sure it points to the version that is inside your packages.config file.

the project must provide a value for configuration Error when install Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation in Core3.1

When I install Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation in a Web project and in Startup add :
services.AddMvc().AddRazorRuntimeCompilation();
,the project does not run and the error is:
the project must provide a value for configuration
my .NET-Core version is 3.1
How can this be fixed?
There are some GitHub issues with this problem and some solutions that have worked for people. That said I would check to see that all NuGet packages are on versions supported by .NET Core 3.1. At this particular moment that means not too new so as to only work with .NET 5 and not too old so as to only work with Core 2.2.
Otherwise, someone suggested restarting VS.
https://github.com/dotnet/sdk/issues/9932
You may also try deleting Microsoft.AspNetCore.Razor.Design from the CsProj file per this duplicate question

ServiceStack ServiceStack.Auth.OrmLiteAuthRepository

All of a sudden I got the following error message when I try to run my web application. "Method 'GetRolesAndPermissions' in type 'ServiceStack.Auth.OrmLiteAuthRepository`2' from assembly 'ServiceStack.Server, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation." I have not updated anything (myself at least). Does anybody recognize the error message? I do not know what I should provide to make this problem reproducible. As I do not know what triggered the issue, and therefore I do not know what is relevant, and it is rather hard to include the entire project in this post.
The new GetRolesAndPermissions was added in the latest ServiceStack v5.6 Release. This Exception occurs if you have a dirty mix of trying to use different NuGet versions together, make sure all your ServiceStack dependencies reference the same version, e.g. by upgrading them all to v5.6.
You can tell if your solution is still referencing old versions by deleting your NuGet packages folder:
rd /q /s packages
Then restoring the NuGet packages in your solution, then check the packages folder to make sure all ServiceStack packages are referencing the same version. If you have different NuGet versions in the packages folder you still have some projects referencing older package versions which need to be upgraded.

Kestrel fail: Can not load Microsoft.Extensions.Logging.Abstractions

I had a very simple Kestrel / ASP.NET Core project successfully deployed to my Windows 2008 R2 server.. (started with an empty Web project + IdentityServer4 nuget I was following this Getting Started page)
So, I could initially retrieve the 'discovery' JSON document.
Then, (per this guide) I added a couple of NuGet packages to it, some views/CSS, etc...
Microsoft.AspNetCore.Mvc -Version 1.1.0
Microsoft.ApsNetCore.StaticFiles -Version 1.1.0
The upgraded solution runs fine on my Win7 dev box, but, after redeploying.. Now I get the dreaded 502.5 error page. If I go into the server and try to "jump start" the executable via command line.. I can see this error:
Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'Microsoft.Extensions.Logging.Abstractions, Version=1.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) at Ross.Web.Applications.Identity.Program.Main(String[] args)
Where did I go wrong?
I can see the aforemetioned DLL, Microsoft.Extensions.Logging.Abstractions, published to the server's file system. I'm guessing I need to do a binding redirect or something, but, I'm too new to core to know how.
UPDATE
After upgrading my NuGet packages to the latest.. the error is similar, but now it can't find: Microsoft.AspNetCore.Hosting.Abstractions, Version=1.1.2.0
People that have multiple projects in solution, pay attention:
This is mainly because there are multiple projects in your solution, and the mentioned package is installed in both of them but with different versions.
Suppose that the exception is like the following:
Simply stop debugging and go to the Manage NuGet Packages for Solution and search for that package in the installed tab:
As you can see, I have that package in two projects with different versions, and that's the point! Simply update the lower version equal to the higher version and you're all set.
Ok, I had to clear out my server's directory.. and do a fresh redeploy.
I had seen other answers about deleteing the 'bin' but was confused, since core web deployments don't feature an actual /bin directory.
Now, I take that to mean, "Clear out the binaries.. wherever they may be"
This is a common issue when mixing 1.1.0 and 1.1.1 asp.net core dependencies.
The simplest solution is to update all dependencies to 1.1.1. If this isn't possible, then you will need to add a binding redirect to redirect the 1.1.1 dependencies to target 1.1.0 assemblies.
After you change these dependencies or add the binding redirects, clear out you /bin folder locally, and turn clean on your next build.

NuGet Issue installing SignalR and Raven

I am trying to use NuGet to add SignalR and Raven to a new ASP.Net MVC 4 project.
If I do SignalR first, then try to add Raven I get the following error:
Install failed. Rolling back... Install-Package : Already referencing
a newer version of 'Newtonsoft.Json'.
If I install Raven first, then SignalR I get:
Install failed. Rolling back... Install-Package : Updating
'Newtonsoft.Json 4.5.7' to 'Newtonsoft.Json 4.5.8' failed. Unable to
find a version of 'RavenDB.Client' that is compatible with
'Newtonsoft.Json 4.5.8'.
I thought NuGet was meant to handle this sort of thing?
How can I get them both added?
It appears that RavenDB.Client has an exact-version constraint on Newtonsoft.Json = 4.5.7, while SignalR has a more relaxed constraint of '4.5.4 or higher' (actually a constraint imposed by one of its own dependencies, SignalR.Server).
I managed to get your above scenario working with some manual tweaking:
Created new MVC4 project
Opened up packages.config and added an 'allowedVersions="[4.5.7]"' attribute to the Newtonsoft.Json package entry
Opened the package manager console (View... Other windows... Package Manager Console) and ran update-packages to pull in latest code for all default dependencies (takes a while)
Again in package manager console, ran install-package RavenDB.Client
Finally in package manager console, ran install-package SignalR
I tried a few combinations of ordering the above but it wasn't liking it - the thing that let it work seems to be the manual editing of packages.config to lock the version of Newtonsoft.Json to 4.5.7 so that subsequent installs don't trash the referenced version.
We ran into this exact issue, but ultimately pulled in the Raven assemblies manually (so we could target a specific version).
Something that we came across is that it is possible to force Nuget to install a package using the command line tools:
How to install an older version of package via NuGet?
I ran into the same issue, but instead decided to install an older version of SignalR. Version 4.0 (February 2012) has a dependency on NewtonSoft >= 4.0.7, and this installs correctly with RavenDB already installed:
Install-Package SignalR -Version 0.4.0
I got the same problem with Raven and the standard MVC template. I wanted the latest version of Newtonsoft.Json so I solved it differently.
I checked what dependencies RavenDB Client had and then installed the latest version of them first Newtonsoft.Json and NLog
I then installed the packet in the Packet manager Console with the -IgnoreDependencies flag.
Install-Package -Id RavenDB.Client -IgnoreDependencies
That worked fine. (I am taking a calculated risk that RavenDB is not compatible with the latest Newtonsoft.Json at the moment. But I am a Daredevil)