Frage

Ich versuche, eine Unterklasse von WebPart zu erstellen, die als Eltern irgend WebParts handeln werden wir schaffen. Wenn ich eine leere Klasse im selben Projekt zu erstellen, bin ich in der Lage davon zu erben, wie man erwarten würde. Allerdings, wenn ich versuche, es in einer anderen Baugruppe zu platzieren - eine, die ich habe in der Lage zu verweisen und verwenden Klassen aus - bekomme ich folgende Fehlermeldung:

Nicht imstande, einen oder mehrere der angeforderten Typen zu laden. Rufen Sie die Loaderexceptions-Eigenschaft für weitere Informationen.

Weitere Informationen, die relevant sein können (ich normalerweise nicht ein Sharepoint-Entwickler): Ich kompilieren die DLLs, sie aus dem dev Projekt verweisen, und kopieren Sie sie in das Verzeichnis / bin der Sharepoint-Instanz. Die Baugruppen werden alle unterzeichnet. Ich versuche, mich zu implementieren-Funktion VS2008 der ‚bereitstellen‘.

Leider ist dies nicht erscheint ein Sharepoint-spezifischen Fehler zu sein, und ich bin nicht sicher, wie das Problem zu lösen. Hat jemand erlebt und haben Sie irgendwelche Vorschläge?

War es hilfreich?

Lösung

OK, fand ich das Problem. Die Verpackungsaufgabe verwendet Reflektion, aus irgendeinem Grund oder einem anderen. Wenn er feststellt, dass Ihre Klasse von einer Klasse erbt in einer anderen Domäne, versucht er, sie zu laden Reflexion verwendet wird. Allerdings Reflexion Bindungspolitik nicht tun, so dass Domäne nicht geladen ist.

Die Autoren des Verpackungsprogramm könnte dies lösen, indem Sie den folgenden Code hinzu:

AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve += new ResolveEventHandler(CurrentDomain_ReflectionOnlyAssemblyResolve);
Assembly a = System.Reflection.Assembly.ReflectionOnlyLoadFrom(filename);

static Assembly CurrentDomain_ReflectionOnlyAssemblyResolve(object sender, ResolveEventArgs args)
{
    return System.Reflection.Assembly.ReflectionOnlyLoad(args.Name);
}

Wenn Sie jedoch eine Lösung für Ihr Projekt benötigen, fügen Sie einfach die Assemblys im GAC und es wird sie lösen kann.

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