Registrieren und Bereitstellen von Plug-Ins

 

Veröffentlicht: Januar 2017

Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Plug-Ins und benutzerdefinierte Workflowaktivitäten sind in benutzerdefiniertem Code erstellt, den Sie zur Erweiterung der vorhandenen Funktionalität von Microsoft Dynamics 365 entwickeln. Bevor ein Plug-In oder eine benutzerdefinierte Workflowaktivität verwendet werden kann, ist eine Registrierung auf dem Server erforderlich. Sie können Plug-Ins und benutzerdefinierte Workflowaktivitäten mit Microsoft Dynamics 365 (online und lokal) programmgesteuert registrieren, indem Sie den Registrierungscode unter Verwendung bestimmter SDK-Klassen schreiben. Um jedoch die Lernkurve zu verkürzen und die Entwicklung und Bereitstellung von benutzerdefiniertem Code zu beschleunigen, enthält der Ordner "Bin" im SDK ein Plug-In und ein Registrierungstool für die Workflowaktivität.Laden Sie das Microsoft Dynamics CRM SDK-Paket herunter.

Während das Augenmerk in diesem Thema hauptsächlich auf Plug-Ins liegt, sind die meisten Informationen auch auf benutzerdefinierte Workflowaktivitäten anwendbar. Der Unterschied liegt darin, dass für benutzerdefinierte Workflowaktivitätsassemblys nur die Assembly registriert wird. Für Plug-Ins registrieren Sie die Plug-In-Assembly und mindestens einen oder mehrere Schritte pro Plug-In. Weitere Informationen über benutzerdefinierte Workflowaktivitäten finden Sie unter Benutzerdefinierte Workflowaktivitäten (Workflowassemblys).

System_CAPS_security Sicherheit Hinweis

Registrieren Sie keine Plug-Ins oder benutzerdefinierten Workflowaktivitäten, es sei denn, sie stammen von einer zuverlässigen und vertrauenswürdigen Quelle.

Weitere Informationen zum Verpacken der Plug-Ins als Lösungskomponenten finden Sie unter Packen und Verteilen von Erweiterungen mithilfe von Lösungen.

In diesem Thema

Plug-In-Registrierungstool

Plug-In-Speicher

Bereitstellung

Assembly-Versionsverwaltung und Lösungen

Sicherheitsbeschränkungen

Programmgesteuertes Registrieren von Plug-Ins

Aktivieren oder Deaktivieren der Ausführung von benutzerdefiniertem Code

Plug-In-Registrierungstool

Das Plug-in Registration-Tool stellt eine grafische Benutzeroberfläche bereit und unterstützt das Registrieren von Plug-Ins und benutzerdefinierten Workflowaktivitäten mit Microsoft Dynamics 365. Benutzerdefinierte Workflowaktivitäten können jedoch nur im Sandkasten (Isolationsmodus) von Microsoft Dynamics 365 (online) registriert werden.

Weitere Informationen dazu, wie Sie ein Plug-In mithilfe des Tools registrieren und bereitstellen, finden Sie unter Exemplarische Vorgehensweise: Registrieren eines Plug-Ins mithilfe des Plug-In-Registrierungstools. Das Tool kann zum Tools-Menü in Visual Studio als externes Tool zum Beschleunigen des Entwicklungsprozesses hinzugefügt werden.

Plug-In-Speicher

Für eine lokale Bereitstellung können lokale Plug-Ins, die nicht im Sandkasten registriert wurden, in der Serverdatenbank von Microsoft Dynamics 365 oder im Dateisystem auf dem Datenträger gespeichert werden. Es wird dringend empfohlen, die einsatzbereiten Plug-Ins in der Microsoft Dynamics 365-Datenbank zu speichern, statt auf einem Datenträger. Die Plug-Ins, die in der Datenbank gespeichert wurden, werden automatisch über mehrere Microsoft Dynamics 365-Server in einem Rechenzentrums-Cluster verteilt. Speicherplatz auf dem Datenträger ist zum Debuggen von Plug-Ins mithilfe von Microsoft Visual Studio nützlich. Sie können jedoch ein Plug-In debuggen, das in der Datenbank gespeichert wurde. Weitere Informationen finden Sie unter Debuggen Sie ein Plug-In.

Plug-Ins, die im Sandkasten registriert wurden, müssen in der Datenbank unabhängig von der Microsoft Dynamics 365-Bereitstellung (lokal, IFD oder online) registriert werden.

Bereitstellung

Für lokale Installationen oder Installationen mit Internetzugriff (IFD) von Microsoft Dynamics 365 muss die Plug-In-Assembly vor Registrierung manuell auf den Server kopiert werden, wenn Sie Plug-Ins von einem anderen Computer für den Microsoft Dynamics 365-Serverdatenträger bereitstellen (Bereitstellung auf Datenträger). Die Assembly muss im Ordner <installdir>\Program Files\Microsoft CRM\server\bin\assembly auf den einzelnen Servern bereitgestellt werden, auf denen das Plug-In ausgeführt werden soll.

Die Plug-In-Registrierung sollte erfolgen, nachdem die Assembly in den Ordner …\bin\assembly auf dem Server kopiert wurde, um eine Situation zu verhindern, in der ein Systembenutzer ein Ereignis in Microsoft Dynamics 365 auslöst, während die registrierte Plug-In-Assembly noch nicht auf dem Server vorhanden ist. Für die Bereitstellung auf der Serverdatenbank wird die Plug-In-Assembly automatisch bei der Plug-In-Registrierung kopiert, damit kein Problem durch die zuvor beschriebene Situation entsteht.

Je nach Entwurf des Plug-Ins müssen ggf. weitere Assemblys, auf die verwiesen wird, ausgeführt werden. Unabhängig davon, ob Sie das Plug-In in einer Datenbank oder auf einem Datenträger bereitstellen – wenn Ihr Plug-In die Ausführung anderer Assemblys erfordert, müssen Sie Kopien dieser Assemblys im globalen Assemblycache der einzelnen Server platzieren, auf denen das Plug-In ausgeführt wird. Dies trifft nicht auf einen Microsoft Dynamics 365 (online)-Server zu, da Sie auf diesem Server über keinen Zugriff auf den globalen Assemblycache verfügen.

So verschieben Sie ein Plug-In von einer Entwicklungsumgebung zu einem Staging- oder Produktionsserver

  1. Erstellen Sie den Plug-In-Code auf dem Entwicklungscomputer. Geben Sie keine Debuginformationen an. Optimieren Sie das Plug-In in Bezug auf Leistung.

  2. Registrieren Sie das Plug-In in der Microsoft Dynamics 365-Serverdatenbank.

  3. Erstellen Sie mithilfe der Microsoft Dynamics 365-Webanwendung eine Lösung, oder verwenden Sie eine bereits vorhandene Lösung, und fügen Sie das Plug-In zu dieser Lösung hinzu.

  4. Nachdem Sie alle weiteren gewünschten Komponenten zur Lösung hinzugefügt haben, exportieren Sie die Lösung.

  5. Importieren Sie die Lösung auf den Staging- oder Produktionsserver.

Assembly-Versionsverwaltung und Lösungen

Die Versionen von Plug-In-Assemblys können mithilfe eines Zahlenformats von major.minor.build.revision verwaltet werden, das in der Datei Assembly.info des Projekts Microsoft Visual Studio definiert wurde. Abhängig vom Teil der Assemblyversionsnummer, der für eine neuere Lösung geändert wird, gilt das folgende Verhalten, wenn eine vorhandene Lösung durch einen Import aktualisiert wird.

  • Die Versionsnummer des Builds oder der Revisionsassembly wird geändert.

    Dies wird als direktes Upgrade bezeichnet. Die ältere Version der Assembly wird beim Import der Lösung entfernt, die die aktualisierte Assembly enthält. Alle bereits vorhandenen Schritte der älteren Lösung werden automatisch auf die neuere Version der Assembly geändert.

  • Die Haupt- bzw. Nebenversionsnummer der Assembly, außer der Build- oder Revisionsnummern, wird geändert.

    Wenn eine aktualisierte Lösung importiert wird, in der die überarbeitete Assembly enthalten ist, wird die Assembly als eine völlig andere Assembly eingestuft, als die frühere Version dieser Assembly in der vorhandenen Lösung. Die Registrierungsschritte für Plug-Ins in der vorhandenen Lösung beziehen sich weiterhin auf die frühere Version der Assembly. Wenn Sie möchten, dass die von der vorherigen Assembly vorhandenen Registrierungsschritte des Plug-Ins auf die bearbeitete Assembly verweisen, müssen Sie das Plug-In-Registrierungstool zur manuellen Änderung der Schrittkonfiguration verwenden, damit diese auf den bearbeiteten Assemblytyp verweist. Dies sollte durchgeführt werden, bevor Sie die aktualisierte Assembly für den späteren Import in eine Lösung exportieren.

Weitere Informationen zu Lösungen finden Sie unter Einführung in Lösungen.

Sicherheitsbeschränkungen

Es gibt eine Sicherheitsbeschränkung, die nur berechtigten Benutzern die Registrierung von Plug-Ins ermöglicht. Für Plug-Ins, die nicht isoliert registriert werden, muss das Systembenutzerkonto, unter dem das Plug-In registriert wurde, in der Gruppe Bereitstellungsadministratoren des Bereitstellungs-Managers vorhanden sein. Nur das Benutzerkonto des Systemadministrators oder ein beliebiges Benutzerkonto, das in der Gruppe Bereitstellungsadministratoren enthalten ist, kann den Bereitstellungs-Manager ausführen.

Wichtig

Bei nicht isolierten Plug-Ins wird bei der Plug-In-Registrierung eine Ausnahme ausgelöst, wenn das zu registrierende Benutzerkonto nicht in die Gruppe Bereitstellungsadministratoren aufgenommen werden kann. Die Ausnahmebeschreibung lautet: "Erforderliche Rechte zum Abschließen des Erstellungsvorgangs für eine SDK-Entität nicht vorhanden".

Das Systembenutzerkonto, unter dem das Plug-In registriert ist, muss über die folgenden organisationsweiten Sicherheitsrechte verfügen:

  • prvCreatePluginAssembly

  • prvCreatePluginType

  • prvCreateSdkMessageProcessingStep

  • prvCreateSdkMessageProcessingStepImage

  • prvCreateSdkMessageProcessingStepSecureConfig

Weitere Informationen finden Sie unter Security role and privilege reference und Das Sicherheitsmodell von Microsoft Dynamics 365.

Für im Sandkasten (Isolationsmodus) registrierte Plug-Ins muss das Systembenutzerkonto, unter dem das Plug-In registriert ist, über die Systemadministratorrolle verfügen. Die Mitgliedschaft in der Gruppe Bereitstellungsadministratoren ist nicht erforderlich.

Programmgesteuertes Registrieren von Plug-Ins

Die wichtigsten Entitätstypen, die zur Registrierung von Plug-Ins und Bildern verwendet werden, lauten: PluginAssembly, PluginType, SdkMessageProcessingStep und SdkMessageProcessingStepImage. Die wichtigsten Entitätstypen, die zur Registrierung von benutzerdefinierten Workflowaktivitäten verwendet werden, lauten PluginAssembly und PluginType. Verwenden Sie diese Entitäten mit den Erstellungs-, Aktualisierungs-, Abruf- und Löschvorgängen.

Weitere Informationen zu Bildern finden Sie unter Nachvollziehen des Datenkontexts, der an einem Plug-In übergeben wird.

Aktivieren oder Deaktivieren der Ausführung von benutzerdefiniertem Code

Sie können Windows PowerShell verwenden, um benutzerdefinierten Code, einschließlich Plug-Ins und benutzerdefinierte Workflowaktivitäten, auf dem Server wie hier beschrieben zu aktivieren oder zu deaktivieren. Alternativ können Sie den Bereitstellungswebdienst verwenden. Weitere Informationen finden Sie unter Bereitstellungs-Entitäten und Bereitstellungs-Konfigurationseinstellungen, um mehr über das Festlegen der CustomCodeSettings.AllowExternalCode-Eigenschaft zu erfahren.

Gehen Sie wie folgt vor, um die Ausführung von benutzerdefiniertem Code zu aktivieren:

  1. Öffnen Sie ein Windows PowerShell-Befehlsfenster.

  2. Fügen Sie das PowerShell-Snap-In von Microsoft Dynamics 365 hinzu:

    Add-PSSnapin Microsoft.Crm.PowerShell
    
  3. Rufen Sie die aktuelle Einstellung ab:

    $setting = get-crmsetting customcodesettings
    
  4. Ändern Sie die aktuelle Einstellung:

    $setting.AllowExternalCode="True"
    
    set-crmsetting $setting
    
  5. Überprüfen Sie die Einstellung.

    get-crmsetting customcodesettings
    

Gehen Sie wie folgt vor, um die Ausführung von benutzerdefiniertem Code zu deaktivieren:

  1. Öffnen Sie ein Windows PowerShell-Befehlsfenster.

  2. Fügen Sie das PowerShell-Snap-In von Microsoft Dynamics 365 hinzu:

    Add-PSSnapin Microsoft.Crm.PowerShell
    
  3. Rufen Sie die aktuelle Einstellung ab:

    $setting = get-crmsetting customcodesettings
    
  4. Ändern Sie die aktuelle Einstellung:

    $setting.AllowExternalCode=0
    
    set-crmsetting $setting
    
  5. Überprüfen Sie die Einstellung.

    get-crmsetting customcodesettings
    

Siehe auch

Plug-In-Entwicklung
Debuggen Sie ein Plug-In
Plug-In-Isolation, Vertrauensstellungen und Statistiken
Packen und Verteilen von Erweiterungen mithilfe von Lösungen
Rechte nach Entität

Microsoft Dynamics 365

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright