使用 Nuget 包Owin.Security.Providers.OpenIDBase 2.1.1和-DLLsOwin.Security.Provides.OpenID 2.24.0版本2.0.0.0。
我正在派生我自己的提供程序 - 即MyOwnAuthenticationMiddleware : OpenIDAuthenticationMiddlewareBase<MyOwnAuthenticationOptions>,并将其IAppBuilder.Use()作为标准启动的一部分传递给。
这可以在我自己的机器上编译并运行良好 - 经典的开发人员系列。
但是,当在 Microsoft Visual Studio Online 的构建服务器(Hosted 2017)上构建时,它会构建,但在启动时会引发运行时错误:
MissingFieldException: Field not found:
'Owin.Security.Providers.OpenIDBase.OpenIDAuthenticationMiddlewareBase`1.HTTPClient'.]
xxxx.CreateSpecificHandler()
字段HTTPClient(a System.Net.Http.HttpClient) 显然无法在派生的泛型类中找到 - 它是 的成员OpenIDAuthenticationMiddlewareBase,在活记忆中没有改变。
我在想构建服务器必须链接到不同的OpenIDAuthenticationMiddlewareBase,但错误消息中的完整规范名称另有说明。
由于正在进行的 .NET Framework/.NET Standard DLL 地狱,我收到了相当多的警告 - 一个与不同版本的 .NET 相关System.Net.Http,我也将其作为 Nuget 包。这可能是相关的吗?
在一个不相关的注释上 - 有没有其他人觉得 Nuget 依赖项和令人眼花缭乱的 .NET Framework/Standard/Core 版本控制数组的组合刚刚重新创建了 .NET 本来应该缓解的同一个 DLL 地狱?