Using Nuget packages Owin.Security.Providers.OpenIDBase 2.1.1
and Owin.Security.Provides.OpenID 2.24.0
- DLLs version 2.0.0.0
.
I'm deriving my own provider - i.e. MyOwnAuthenticationMiddleware : OpenIDAuthenticationMiddlewareBase<MyOwnAuthenticationOptions>
, and passing that to IAppBuilder.Use()
as part of the standard Startup.
This compiles and runs fine on my own machine - the classic developer line.
But when built on Microsoft Visual Studio Online's build server (Hosted 2017), it builds but then throws a runtime error on startup:
MissingFieldException: Field not found:
'Owin.Security.Providers.OpenIDBase.OpenIDAuthenticationMiddlewareBase`1.HTTPClient'.]
xxxx.CreateSpecificHandler()
Field HTTPClient
(a System.Net.Http.HttpClient
) apparently can't be found in the derived generic class -it's a member of OpenIDAuthenticationMiddlewareBase
, which hasn't changed in living memory.
I was thinking that the build server must be linking to a different OpenIDAuthenticationMiddlewareBase
, but the full canonical name in the error message indicates otherwise.
I am receiving a fair few warnings due to ongoing .NET Framework/.NET Standard DLL hell - one relates to different versions of System.Net.Http
, which I have as a Nuget package also. Could this be relevant?
On an unrelated note - does anyone else feel like the combination of Nuget dependencies and the bewildering array of .NET Framework/Standard/Core versioning has just recreated the same DLL hell that .NET was supposed to alleviate in the first place?