2016-04-13 13 views
0

Ich arbeite an Portable Class Library (PCL) und versuche, MEF in diesem zu erreichen. Ich habe System.Composition von Nuget verwendet. Wenn ich für Vsix (Erweiterung für Visual Studio) baue und verpacke, verpackt und legt es diese DLLs nicht in den Erweiterungsordner (C: \ Users \ Benutzername \ AppData \ Local \ Microsoft \ VisualStudio \ 14.0Exp \ Extensions \ ExtensionName \ AppName \ versionofYourApp). Wenn ich diese Bibliothek manuell in diesen Ordner platziere, funktioniert es einwandfrei. Kann jemand eine gute Lösung für dieses Problem vorschlagen? Ich schreibe es für Roslyn Analysatoren und erstelle ein nugget-Paket. Ich stehe wieder vor dem gleichen Problem, auch wenn ich diese Bibliothek zusammenpacke.MEF Mit Portable Class-Bibliothek mit Microsoft Composition MEF2 löst Datei nicht gefunden Ausnahme

+0

Visual Studio wird mit einer Kopie von System.Composition geliefert, weshalb wir sie nicht mit Ihnen verpacken. Was versuchst du wirklich? Haben Sie mit unserer Analysevorlage begonnen? –

+0

Ja, ich habe das VS Template für den Roslyn Analyzer benutzt. Ich versuche, Mef im Analysator für meine benutzerdefinierten Funktionen zu erreichen, z. Da der Analyzer pcl ist, musste ich eine Core- und Implementierungsbibliothek erstellen, die PCL ist. Mit MEF lade ich die Implementierungsbibliothek aus der Core-Bibliothek. –

Antwort

0

Setzen Sie in der VSIX-Referenz auf die MEF-DLLs Local auf true.

+0

Es ist Local True Copy gesetzt. Gleiches Ergebnis. –

0

Ich fand eine Lösung, dachte an den Austausch. Sie können gerne korrigieren und vorschlagen. Für Vsix Erweiterung habe ich diese Bibliothek als Asset (VisualStudio.Assembly) von lokalen hinzugefügt.

Und für Pakete, Assembly.Load ("AssemblyName") versucht, Bibliothek von allen möglichen Standorten wie "C: \ Programme (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ PrivateAssemblies" und viele zu laden. Also habe ich es dort hingelegt und es wurde geladen. Ich weiß, das ist nicht die beste Lösung. Sie können uns gerne vorschlagen.