Frage

Ich habe versucht, mit MEF eine erweiterbare Metro-App zu schreiben.Ich habe es mit einer lokalen Erweiterung (innerhalb der aktuellen Assembly) zum Laufen gebracht.Jetzt möchte ich eine externe DLL laden.Der DirectoryCatalog scheint in .net 4.5 nicht vorhanden zu sein.Also habe ich versucht, es zu verwenden ApplicationCatalog aber ich habe beim Anruf die folgende Fehlermeldung erhalten SatisfyImportsOnce: Assembly.LoadFrom is not supported in AppX..

Hier ist mein Code:

var catalog = new AssemblyCatalog(GetType().GetTypeInfo().Assembly);
ApplicationCatalog catApp = new ApplicationCatalog();
AggregateCatalog cat = new AggregateCatalog(catalog, catApp);
_compositionService = cat.CreateCompositionService();
_compositionService.SatisfyImportsOnce(this);

Irgendwelche Vorschläge, was falsch läuft?

Ich habe die DLL im Appx-Verzeichnis abgelegt und VS11 Beta als Administrator ausgeführt.

War es hilfreich?

Lösung 2

Ich habe mit einem Unterstützer in den MEF-Foren gesprochen und er bestätigt, dass ApplicationCatalog nicht aus einer Metro-App heraus verwendet werden konnte.Diese Frage ist also nicht lösbar, könnte aber abgeschlossen werden.Quellthread

Andere Tipps

Ihre externe Bibliothek reicht außerhalb der zulässigen Sandbox von Metro.Das .NET-Framework in der Metro-Umgebung ist begrenzt, ähnlich wie das WP7- oder Micro-Framework.Es werden viele Dinge geschnitten.Wenn Ihre externe DLL nicht mit diesen eingeschränkten Bibliotheken erstellt wird, lässt der Compiler ihre Verwendung nicht zu.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top