Could not load file or assembly 'Orleans.Runtime, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.
at System.Reflection.RuntimeAssembly.<InternalLoad>g____PInvoke|48_0(NativeAssemblyNameParts* __pAssemblyNameParts_native, ObjectHandleOnStack __requestingAssembly_native, StackCrawlMarkHandle __stackMark_native, Int32 __throwOnFileNotFound_native, ObjectHandleOnStack __assemblyLoadContext_native, ObjectHandleOnStack __retAssembly_native)
at System.Reflection.RuntimeAssembly.<InternalLoad>g____PInvoke|48_0(NativeAssemblyNameParts* __pAssemblyNameParts_native, ObjectHandleOnStack __requestingAssembly_native, StackCrawlMarkHandle __stackMark_native, Int32 __throwOnFileNotFound_native, ObjectHandleOnStack __assemblyLoadContext_native, ObjectHandleOnStack __retAssembly_native)
at System.Reflection.RuntimeAssembly.InternalLoad(AssemblyName assemblyName, StackCrawlMark& stackMark, AssemblyLoadContext assemblyLoadContext, RuntimeAssembly requestingAssembly, Boolean throwOnFileNotFound) in /_/src/runtime/src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeAssembly.cs:line 385
at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyName(AssemblyName assemblyName) in /_/src/runtime/src/libraries/System.Private.CoreLib/src/System/Runtime/Loader/AssemblyLoadContext.cs:line 327
at Orleans.Serialization.Internal.ReferencedAssemblyProvider.<GetApplicationPartAssemblies>g__ExpandAssembly|5_3(HashSet`1 assemblies, Assembly assembly) in /_/src/Orleans.Serialization/Hosting/ReferencedAssemblyProvider.cs:line 220
at Orleans.Serialization.Internal.ReferencedAssemblyProvider.<GetApplicationPartAssemblies>g__ExpandAssembly|5_3(HashSet`1 assemblies, Assembly assembly) in /_/src/Orleans.Serialization/Hosting/ReferencedAssemblyProvider.cs:line 226
at Orleans.Serialization.Internal.ReferencedAssemblyProvider.<GetApplicationPartAssemblies>g__ExpandApplicationParts|5_1(IEnumerable`1 assemblies) in /_/src/Orleans.Serialization/Hosting/ReferencedAssemblyProvider.cs:line 198
at Orleans.Serialization.Internal.ReferencedAssemblyProvider.GetApplicationPartAssemblies(Assembly assembly) in /_/src/Orleans.Serialization/Hosting/ReferencedAssemblyProvider.cs:line 176
at Orleans.Serialization.Internal.ReferencedAssemblyProvider.AddAssembly(HashSet`1 parts, Assembly assembly) in /_/src/Orleans.Serialization/Hosting/ReferencedAssemblyProvider.cs:line 54
at Orleans.Serialization.Internal.ReferencedAssemblyProvider.AddFromDependencyContext(HashSet`1 parts, Assembly assembly) in /_/src/Orleans.Serialization/Hosting/ReferencedAssemblyProvider.cs:line 108
at Orleans.Serialization.Internal.ReferencedAssemblyProvider.GetRelevantAssemblies() in /_/src/Orleans.Serialization/Hosting/ReferencedAssemblyProvider.cs:line 20
at Orleans.Serialization.ServiceCollectionExtensions.AddSerializer(IServiceCollection services, Action`1 configure) in /_/src/Orleans.Serialization/Hosting/ServiceCollectionExtensions.cs:line 40
at Orleans.DefaultClientServices.AddDefaultServices(IClientBuilder builder) in /_/src/Orleans.Core/Core/DefaultClientServices.cs:line 130
at Orleans.Hosting.ClientBuilder..ctor(IServiceCollection services, IConfiguration configuration) in /_/src/Orleans.Core/Core/ClientBuilder.cs:line 21
at Microsoft.Extensions.Hosting.OrleansClientGenericHostExtensions.AddOrleansClient(IServiceCollection services, IConfiguration configuration) in /_/src/Orleans.Core/Hosting/OrleansClientGenericHostExtensions.cs:line 204
at Microsoft.Extensions.Hosting.OrleansClientGenericHostExtensions.AddOrleansClient(IServiceCollection services, Action`1 configureDelegate) in /_/src/Orleans.Core/Hosting/OrleansClientGenericHostExtensions.cs:line 161
at …ConfigureServices(IServiceCollection services) in C:\Users\…
…
I have a "pure" Orleans client project (referencing only
Microsoft.Orleans.ClientandOrleans.Clustering.Kubernetes) that is setup withUseKubeGatewayListProvider(). When I run this project, I get an exceptionException
This needs to be carefully set up, as any Orleans dependency that includes the runtime might have placed the runtime assembly in the output folder already, making it
Assembly.Load'able.It looks like this is an artifact of the code generators in the Orleans SDK maybe being a bit overzealous and OCK not depending on the runtime externally (
PrivateAssets="All"). I wonder if the generators can/should be turned off.As a workaround, I have included a
Microsoft.Orleans.Runtimereference in my project.