EventStore .NET Client Package for .NET Core (dnx core)


I’m working on getting the EventStore .NET Client to run on .NET Core 5.0. Has anyone else been working on this??

I noticed from the thread “dnx core support” that no one seems to be working on it yet AFAIK, but that pull requests would be welcomed, so once I get stable results, I’ll make a pull request back to the EventStore repository. What branch should I work off of?




Probably the best branch to start from is release-v3.4.0 - there are no significant changes to the client there.

I noticed that the TPL isn’t used much in this code. Is there a reason for that? A lot of things that have been removed for .NET core only have alternatives that, for example, return a Task, so you have to use async and await, which I have been adding to the code. Is that going to be ok ?

I got it to build, I had to force everything to target .NET 4.6 instead of 4.0 however.

I can’t seem to run the tests, they are failing with:

PortsHelper: port 45183 unavailable for HttpListener. Error: Access is denied.

Are you running elevated as administrator?

+1 this is the most likely. Either that or setup ACLs in windows
(guessing this is on windows...)

Yep, figured that out right after I asked. Thanks though.

The solution builds on my branch, but the tests don’t pass yet. Right now it is failing on some dependencies that aren’t available (DLLs missing) for whatever reason.

Also, for some of the changes I had to make (things that have been deprecated in .NET core), I wasn’t able to find a replacement, so I simply removed code instead of replacing it.

Some things that come to mind are Socket.Close(), and some of the methods on the x.509 certificate (they were only used in logging). There are probably others.

So, this is definitely not done yet, but I pushed it to my own github account and created an issue on the EventStore repository to track it:

For now, I have to work on something else, but either myself or someone else from my team will eventually get back to this and finish it.

Here are the (very work in progress) changes I have made so far: