我Azure的功能项目(.NET标准)有一个名为类Startup.cs
实现接口IFunctionStartup
,只要这个类是项目下引发错误。如果我明确地实现在类的界面,我可以通过这个错误,但随后其他类的功能会导致同样的问题。
Export: Unable to load one or more of the requested types.
Method 'RegisterDependencies' in type '*****.Startup'
from assembly '*****.AzureFunction, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
does not have an implementation.
Startup.cs
public class Startup : IFunctionStartup
{
public void RegisterDependencies(ContainerBuilder builder, IConfiguration configuration)
{
builder.RegisterModule(new ApplicationRegistrar(configuration));
}
// This explicit interface implementation gets me pass the error,
// but doesn't address the root cause, because other classes will
// start failing with the same error.
//void IFunctionStartup.RegisterDependencies(ContainerBuilder builder, IConfiguration configuration)
//{
// throw new System.NotImplementedException();
//}
}
IFunctionStartup.cs
public interface IFunctionStartup
{
void RegisterDependencies(ContainerBuilder builder, IConfiguration configuration);
}
下面是完整的初始化日志:
Azure Functions Core Tools (2.3.199 Commit hash: fdf734b09806be822e7d946fe17928b419d8a289)
Function Runtime Version: 2.0.12246.0
[1/11/2019 2:29:54 PM] Starting Rpc Initialization Service.
[1/11/2019 2:29:54 PM] Initializaing RpcServer
[1/11/2019 2:29:54 PM] Building host: startup suppressed:False, configuration suppressed: False
[1/11/2019 2:29:54 PM] Reading host configuration file '*****\host.json'
[1/11/2019 2:29:54 PM] Host configuration file read:
[1/11/2019 2:29:54 PM] {
[1/11/2019 2:29:54 PM] "version": "2.0"
[1/11/2019 2:29:54 PM] }
[1/11/2019 2:29:55 PM] Initializing Host.
[1/11/2019 2:29:55 PM] Host initialization: ConsecutiveErrors=0, StartupCount=1
[1/11/2019 2:29:55 PM] Starting JobHost
[1/11/2019 2:29:55 PM] Starting Host (HostId=*****-1139087863, InstanceId=2896b355-b2f7-4ae7-bfc4-403ec9c0d84d, Version=2.0.12246.0, ProcessId=247248, AppDomainId=1, InDebugMode=False, InDiagnosticMode=False, FunctionsExtensionVersion=)
[1/11/2019 2:29:55 PM] Loading functions metadata
[1/11/2019 2:29:55 PM] 1 functions loaded
[1/11/2019 2:29:55 PM] WorkerRuntime: dotnet. Will shutdown other standby channels
[1/11/2019 2:29:56 PM] Generating 0 job function(s)
[1/11/2019 2:29:56 PM] Found the following functions:
[1/11/2019 2:29:56 PM] *****.ExportComplianceDetailsFunction.Run
[1/11/2019 2:29:56 PM]
[1/11/2019 2:29:56 PM] Host initialized (754ms)
[1/11/2019 2:29:56 PM] Host started (767ms)
[1/11/2019 2:29:56 PM] Job host started
[1/11/2019 2:29:56 PM] The following 1 functions are in error:
[1/11/2019 2:29:56 PM] Export: Unable to load one or more of the requested types.
[1/11/2019 2:29:56 PM] Method 'RegisterDependencies' in type '*****.Startup' from assembly '*****.AzureFunction, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
[1/11/2019 2:29:56 PM]
Hosting environment: Production
Content root path: *****\netstandard2.0
Now listening on: http://0.0.0.0:7071
Application started. Press Ctrl+C to shut down.
我能解决这个问题。根本原因是Microsoft.EntityFrameworkCore.SqlServer
2.2版,其是在这个时候天青功能不兼容。
不幸的是,该错误信息是完全无关的根本原因,我只能通过反复试验来找出不兼容的NuGet。
下面是关于如何解决它的一些指针: