@@ -29,17 +29,12 @@ public static void MystiqueSetup(this IServiceCollection services, IConfiguratio
2929 services . AddScoped < IPluginManager , PluginManager > ( ) ;
3030 services . AddScoped < IUnitOfWork , UnitOfWork > ( ) ;
3131 services . AddSingleton < IActionDescriptorChangeProvider > ( MystiqueActionDescriptorChangeProvider . Instance ) ;
32+ services . AddSingleton < IReferenceContainer , DefaultReferenceContainer > ( ) ;
33+ services . AddSingleton < IReferenceLoader , DefaultReferenceLoader > ( ) ;
34+ services . AddSingleton < IDependanceLoader , DefaultDependanceLoader > ( ) ;
3235 services . AddSingleton ( MystiqueActionDescriptorChangeProvider . Instance ) ;
3336
34- var mvcBuilder = services . AddMvc ( ) . AddRazorRuntimeCompilation ( o =>
35- {
36- foreach ( var item in _presets )
37- {
38- o . AdditionalReferencePaths . Add ( item ) ;
39- }
40-
41- AdditionalReferencePathHolder . AdditionalReferencePaths = o . AdditionalReferencePaths ;
42- } ) ;
37+ var mvcBuilder = services . AddMvc ( ) ;
4338
4439 var provider = services . BuildServiceProvider ( ) ;
4540 using ( var scope = provider . CreateScope ( ) )
@@ -48,21 +43,21 @@ public static void MystiqueSetup(this IServiceCollection services, IConfiguratio
4843
4944 var unitOfWork = scope . ServiceProvider . GetService < IUnitOfWork > ( ) ;
5045 var allEnabledPlugins = unitOfWork . PluginRepository . GetAllEnabledPlugins ( ) ;
46+ var loader = scope . ServiceProvider . GetService < IReferenceLoader > ( ) ;
5147
5248 foreach ( var plugin in allEnabledPlugins )
5349 {
5450 var context = new CollectibleAssemblyLoadContext ( ) ;
5551 var moduleName = plugin . Name ;
5652 var filePath = $ "{ AppDomain . CurrentDomain . BaseDirectory } Modules\\ { moduleName } \\ { moduleName } .dll";
53+ var jsonPath = $ "{ AppDomain . CurrentDomain . BaseDirectory } Modules\\ { moduleName } \\ { moduleName } .deps.json";
5754 var referenceFolderPath = $ "{ AppDomain . CurrentDomain . BaseDirectory } Modules\\ { moduleName } ";
5855
5956 _presets . Add ( filePath ) ;
6057 using ( var fs = new FileStream ( filePath , FileMode . Open ) )
6158 {
6259 var assembly = context . LoadFromStream ( fs ) ;
63-
64- DefaultReferenceLoader loader = new DefaultReferenceLoader ( referenceFolderPath , $ "{ moduleName } .dll") ;
65- loader . LoadStreamsIntoContext ( context ) ;
60+ loader . LoadStreamsIntoContext ( context , referenceFolderPath , assembly , jsonPath ) ;
6661
6762 var controllerAssemblyPart = new MystiqueAssemblyPart ( assembly ) ;
6863 mvcBuilder . PartManager . ApplicationParts . Add ( controllerAssemblyPart ) ;
@@ -71,6 +66,16 @@ public static void MystiqueSetup(this IServiceCollection services, IConfiguratio
7166 }
7267 }
7368
69+ mvcBuilder . AddRazorRuntimeCompilation ( o =>
70+ {
71+ foreach ( var item in _presets )
72+ {
73+ o . AdditionalReferencePaths . Add ( item ) ;
74+ }
75+
76+ AdditionalReferencePathHolder . AdditionalReferencePaths = o . AdditionalReferencePaths ;
77+ } ) ;
78+
7479 services . Configure < RazorViewEngineOptions > ( o =>
7580 {
7681 o . AreaViewLocationFormats . Add ( "/Modules/{2}/Views/{1}/{0}" + RazorViewEngine . ViewExtension ) ;
0 commit comments