Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Kategorie: Wartung, Entwurf
Wirkungspotential: Niedrig
Symptome
Beim Importieren einer Lösung, die ein Plug-In enthält, wird möglicherweise ein Fehler wie folgt angezeigt:
ImportSolutionException: Plugin Assemblies import: FAILURE. Error: Plugin: Custom.Xrm.Plugins,
Version=1.2.0.0, Culture=neutral, PublicKeyToken=59f189e458044167 of PluginTypeName:
Microsoft.Crm.Entities.PluginType and PluginTypeNode: caused an exception.: Plugin Types
import: FAILURE. Error: Plugin: Custom.Xrm.Plugins, Version=1.2.0.0, Culture=neutral,
PublicKeyToken=59f189e458044167 of PluginTypeName: Microsoft.Crm.Entities.PluginType caused an
exception.: PluginType [Custom.Xrm.Plugins.CreateContact] not found in PluginAssembly
Dieser Fehler tritt auf, wenn einer vorhandenen Assembly in der Lösung ein neuer Plug-In-Typ hinzugefügt wird und diese Assembly auch in einer anderen Lösung enthalten ist.
Leitfaden
Die Definition einer Plug-in-Baugruppe sollte in einer einzigen Lösung beibehalten werden. Möglicherweise möchten Sie über eine separate Lösung verfügen, die nur Plug-In-Definitionen enthält, um die Plug-Ins zu verwalten.
Problematische Muster
Nachfolgend finden Sie zwei Beispiele für die Bedingung, in der dieser Fehler auftreten kann. In beiden Beispielen gibt es eine Plug-In-Assembly, die die BasicPlugin.dll Datei darstellt. Beide Beispiele schlagen mit Fehler fehl: PluginType [BasicPlugin.CreateAccount] not found in PluginAssembly.
Beispiel 1: Upgrade einer vorhandenen Lösung
Es gibt zwei Lösungen, die BasicPlugin.dllenthalten.
In der Zielumgebung (verwaltet) weist die BasicPlugin.dll assembly die folgende Lösungsschichtung auf.
| Ebene | Lösung | Lösungsversion | BasicPlugin-Typen |
|---|---|---|---|
| 1 | AnotherSolution | v1.0.0.0 | UpdateLead |
| 2 | PluginSolution | v1.0.0.0 | UpdateLead |
Anschließend aktualisieren Sie die PluginSolution, ändern die Version in v2.0.0.0.0 und fügen einen neuen Plug-In-Typ ein: CreateAccount.
Dies schlägt fehl, da die Plug-In-Assembly der Lösungskomponente der obersten Ebene (Ebene 1) nicht den neuen CreateAccount Plug-In-Typ enthält.
Beispiel 2: Installieren einer neuen Lösung
In der Zielumgebung (verwaltet) weist die BasicPlugin.dll assembly die folgende Lösungsschichtung auf.
| Ebene | Lösung | Lösungsversion | BasicPlugin-Typen |
|---|---|---|---|
| 1 | PluginSolution | v1.0.0.0 | UpdateLeadCreateAccount |
Wenn Sie versuchen, eine neue Lösung, AnotherSolution v1.0.0.0, zu installieren, die eine BasicPlugin-Assembly mit nur dem Plug-In-Typ UpdateLead enthält.
Der Fehler tritt auf, da die BasicPlugin.dll in dieser neuen Lösung nicht den CreateAccount PluginType enthält.
Lösungen
Die richtige Lösung besteht darin, die Situation zu vermeiden, in der dieselbe Plug-In-Assembly in mehreren Lösungen enthalten ist.
Wenn die Plug-In-Assembly in beiden obigen Beispielen Teil von zwei verschiedenen Lösungen ist, müssen Sie in beiden Lösungen einheitliche Plug-In-Typen beibehalten. Wenn Sie weiterhin beide Plug-In-Assemblys in beiden Lösungen verwalten, müssen Sie beide Lösungen jedes Mal aktualisieren, wenn Sie der Assembly einen neuen Plug-In-Typ hinzufügen.
Weitere Informationen
Lösungen können Plug-Ins enthalten. Plug-Ins bestehen aus PluginAssembly- und PluginType-Datensätzen , die miteinander verknüpft sind.
PluginAssembly enthält den binären Inhalt der Assembly. PluginType enthält einen Verweis auf die Klasse in der Assembly, die die IPlugin Schnittstelle implementiert.
Als Lösungskomponenten nehmen Plug-Ins am Lösungsschichtungssystem teil. Wenn die gleiche Assembly in zwei lösungen enthalten ist, die übereinander installiert sind, schlägt die Typüberprüfung fehl, wenn in den Assemblys nicht übereinstimmende Typen vorhanden sind.