¿Cómo cargar/importar dll con MEF fuera de la aplicación metro?
-
12-12-2019 - |
Pregunta
Intento escribir una aplicación metropolitana extensible usando MEF.Lo hice funcionar con una extensión local (dentro del ensamblaje actual).Ahora quiero cargar una dll externa.El DirectoryCatalog
parece no estar presente en .net 4.5.Así que intenté usar ApplicationCatalog
pero recibí el siguiente error al llamar SatisfyImportsOnce
: Assembly.LoadFrom is not supported in AppX.
.
Aquí está mi código:
var catalog = new AssemblyCatalog(GetType().GetTypeInfo().Assembly);
ApplicationCatalog catApp = new ApplicationCatalog();
AggregateCatalog cat = new AggregateCatalog(catalog, catApp);
_compositionService = cat.CreateCompositionService();
_compositionService.SatisfyImportsOnce(this);
¿Alguna sugerencia de qué está yendo mal?
Coloqué el dll en el directorio Appx y ejecuté VS11 Beta como administrador.
Solución 2
Hablé con un partidario en los foros de MEF y me confirma que ApplicationCatalog no se puede utilizar desde una aplicación metro.Por tanto, esta cuestión no tiene solución, pero podría resolverse.Hilo fuente
Otros consejos
Su biblioteca externa llega fuera del entorno limitado permitido de Metro.El marco .NET en el entorno Metro es limitado, similar al WP7 o Micro Framework.Hay muchas cosas recortadas.Si su DLL externa no está construida utilizando esas bibliotecas restringidas, entonces el compilador no permitirá su uso.