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.
Lösungskomponenten sind oft von anderen Lösungskomponenten abhängig. Sie können keine Lösungskomponente löschen, von der andere Lösungskomponenten abhängig sind. Abhängigkeiten sind Datensätze, die vom Lösungsframework automatisch erstellt werden, um zu verhindern, dass erforderliche Komponenten gelöscht werden, während eine oder mehrere abhängige Komponenten weiterhin Verweise darauf enthalten.
Ein Beispiel für eine Abhängigkeit lautet wie folgt: Wenn für die ordnungsgemäße Funktion eines Formulars ein Feld erforderlich ist, funktioniert das Formular nicht mehr, wenn Sie jemals versuchen sollten, eine Aktion auszuführen, die das Löschen dieses Felds zur Folge hat.
Ein anderes Beispiel ist, wenn Sie versuchen, die Siteübersicht für eine modellgesteuerte App zu löschen. Das System gibt an, dass eine Abhängigkeit von der App besteht. Die App ist die abhängige Komponente, und die Siteübersicht ist die erforderliche Komponente. Das System verhindert, dass Sie die Siteübersicht löschen, bis Sie die Abhängigkeit entfernen.
Anmerkung
In diesem Artikel bedeutet Löschen, dass die Komponente vollständig aus Microsoft Dataverse entfernt wird.
In diesem Artikel besprechen wir, wie mit diesen Abhängigkeiten umgegangen wird und welche Strategien Sie anwenden können, um nicht mehr benötigte Abhängigkeiten zu entfernen.
Abhängigkeiten von nicht verwalteten vs. verwalteten Komponenten
Zunächst ist es wichtig zu verstehen, dass Abhängigkeiten nur Vorgänge verhindern, die eine erforderliche Komponente löschen. Die Aktionen, die eine Komponente löschen können, sind unterschiedlich, je nachdem, ob es sich um eine unverwaltete oder verwaltete Komponente handelt.
Es ist gut, mit dem Konzept der Lösungs- und Komponentenebenen vertraut zu sein, wenn Sie Abhängigkeiten beschreiben. Wenn Sie hiermit nicht vertraut sind, empfehlen wir Ihnen die Lektüre des folgenden Artikels, bevor Sie fortfahren: Lösungsebenen.
Nicht verwaltete Komponenten
Diese Komponenten werden in der aktiven Lösung durch eine einzige Schicht dargestellt. Jede Löschen Operation an einer solchen Komponente führt zur vollständigen Entfernung der Komponente.
Verwaltete Komponenten
Die Löschung verwalteter Komponenten hängt von mehreren Faktoren ab: der Anzahl der Lösungsschichten, der relativen Position der Schicht, die deinstalliert wird, und den Publishern der Komponenten. Berücksichtigen Sie beispielsweise beim Löschen einer Komponente die folgenden Szenarien und das zu erwartende Verhalten bei der Deinstallation der verschiedenen Schichten.
Beispiel-Szenarien
Die folgenden Beispielszenarien veranschaulichen, was mit den Lösungsschichten geschieht, wenn Lösungen deinstalliert werden.
Szenario 1: Deinstallation einer einzelnen Lösungsschicht
Die Deinstallation von Lösung 1 führt zu einer Löschung der Komponente, da sie die einzige Ebene für die Komponente ist.
Szenario 2: Deinstallieren von Lösungsebenen von verschiedenen Publishern
- Die Deinstallation von Lösung 2 führt nicht zur Löschung einer Komponente. Nur diese Schicht wird entfernt.
- Die Deinstallation von Lösung 1 führt zu einer Komponentenlöschung, da die Aktion in der Basisschicht stattfindet. Tatsächlich kann Lösung 1 in diesem Szenario nicht deinstalliert werden, da eine Lösung von einem anderen Publisher die Komponente erweitert.
Szenario 3: Deinstallation mehrerer Lösungsschichten von verschiedenen Publishern
- Die Deinstallation von Lösung 3 führt nicht zur Löschung einer Komponente. Nur diese Schicht wird entfernt.
- Die Deinstallation von Lösung 2 führt nicht zur Löschung einer Komponente. Nur diese Schicht wird entfernt.
- Die Deinstallation von Lösung 1 führt nicht zur Löschung von Komponenten, da es in diesem Fall eine andere Lösung desselben Herausgebers gibt (Herausgeber A = Herausgeber C). Die Plattform entfernt die Schicht aus Lösung 1 und ersetzt sie durch die Schicht aus Lösung 3.
Szenario 4: Deinstallieren von Lösungsschichten in einer nicht verwalteten Anpassung
- Die Deinstallation der aktiven (nicht verwalteten) Ebene führt nicht zur Löschung einer Komponente. Nur diese Schicht wird entfernt. Beachten Sie, dass Sie die aktive Lösung nicht deinstallieren können. Sie können jedoch Komponenten entfernen, indem Sie die Funktion Aktive Anpassung entfernen verwenden.
- Die Deinstallation von Lösung 1 verursacht eine Komponentenlöschung. Die Aktion findet in der Basisebene statt. Im Gegensatz zu Szenario 2 können Sie Lösung 1 deinstallieren. Die aktive Lösung wird nicht als Erweiterung betrachtet und beide Ebenen werden entfernt.
Seite „Abhängigkeiten anzeigen“
Der Befehl Abhängigkeiten anzeigen listet die Abhängigkeiten für die ausgewählte Lösung oder Lösungskomponente auf. Es kann durch aufgerufen werden:
- Wählen Sie Abhängigkeiten anzeigen auf der Lösungsseite.
- Wählen Sie Erweitert>Abhängigkeiten anzeigen in einer Lösung, wenn eine Lösungskomponente ausgewählt wird.
- Den Versuch, eine Lösung zu deinstallieren, wodurch die Plattform erkennt, dass Abhängigkeiten bestehen.
Auf der Seite Abhängigkeiten können Sie die Komponente öffnen, entfernen oder löschen. Mehr Informationen: Abhängigkeiten für eine Komponente anzeigen
Diagnostizieren von Abhängigkeiten
Sehen Sie sich dieses Szenario an. Die Umgebung hat zwei Lösungen: Lösung – Workflow und Lösung – benutzerdefinierte Entität.
Ein Ersteller der Umgebung entscheidet, dass er Lösung – benutzerdefinierte Entität nicht mehr benötigt. Der Ersteller hat versucht, sie zu löschen, und erhielt die folgende Seite:
Bei der Deinstallation der Lösung wird versucht, eine Tabelle namens Benutzerdefinierte Entität sowie die drei Felder Benutzerdefinierte Entität, Name und Nummernfeld zu löschen, wobei alle vier Komponenten Abhängigkeiten aufweisen.
Anmerkung
Die Deinstallation der Lösung könnte möglicherweise weitere Komponenten löschen, aber da diese keine Abhängigkeiten haben, erscheinen sie nicht in der Liste.
Der nächste Schritt ist die Überprüfung der Verknüpfung Lösungsebenen (äußerste rechte Spalte) für jede Abhängigkeit. Das hilft Ihnen bei der Entscheidung, was zu tun ist, um die Abhängigkeit zu entfernen.
Die folgende Abbildung zeigt Details der Abhängigkeit zwischen der Tabelle (Benutzerdefinierte Entität) und dem Prozess (Test-Workflow).
Anhand der angezeigten Daten können Sie beobachten, dass die abhängige Komponente zu einer Lösung mit dem Namen SolutionWorkflow gehört. Um diese Abhängigkeit zu entfernen, können Sie entweder
- Aktualisieren Sie die Definition des Workflows in SolutionWorkflow, indem Sie alle Verweise auf die Tabelle oder ihre Unterkomponenten entfernen. Dann Update oder Upgrade die Lösung.
- Die SolutionWorkflow-Lösung deinstallieren.
- Entfernen Sie den Workflow aus einer neuen Version der SolutionWorkflow-Lösung und führen Sie dann ein Upgrade durch.
Da jede einzelne abhängige Komponente das Entfernen der Lösung verhindern kann, empfehlen wir, dass Sie alle Abhängigkeiten überprüfen und alle erforderlichen Änderungen in einem einzigen Vorgang vornehmen.
Die folgende Abbildung zeigt die Abhängigkeitsdetails zwischen der Tabelle (Benutzerdefinierte Entität) und einer modellbasierten App (Meine App).
Anhand der angezeigten Daten können Sie beobachten, dass die abhängige Komponente zu einer Lösung mit dem Namen Aktiv gehört. Dies zeigt an, dass die Abhängigkeit durch den Import einer nicht verwalteten Lösung oder durch eine nicht verwaltete Anpassung erstellt wurde, die über die moderne Benutzeroberfläche oder API ausgeführt wurde.
Um diese Abhängigkeit zu entfernen, können Sie entweder
- Bearbeiten Sie die Definition der Modellbasierten Apps, um jeden Verweis auf die Entität oder ihre Unterkomponenten zu entfernen. Da Modellbasierte Apps das Publizieren unterstützen, müssen Sie Ihre Änderungen veröffentlichen.
- Löschen Sie die Modellbasierte Apps.
Anmerkung
Die Deinstallation einer nicht verwalteten Lösung ist keine Option zum Entfernen dieser Abhängigkeit, da nicht verwaltete Lösungen nur ein Mittel zum Gruppieren von Komponenten sind.
Aktionen zum Entfernen einer verwalteten Abhängigkeit
Verwaltete Abhängigkeiten sind diejenigen, bei denen die abhängige Komponente mit einer verwalteten Lösung verknüpft ist. Um diese Art der Abhängigkeit zu lösen, müssen Sie sich an die Lösung halten, zu der die Komponente hinzugefügt wurde. Diese Aktion kann je nach dem, was Sie zu tun versuchen, unterschiedlich sein.
Wenn Sie versuchen, eine Lösung zu deinstallieren
Führen Sie diese Schritte aus:
- Untersuchen Sie in der Zielumgebung den Link Lösungsebenen, um die oberste Lösung auf der Liste der abhängigen Komponente zu finden.
- Bereiten Sie in der Quellumgebung eine neue Version dieser Lösung vor, wobei die Lösung entweder die abhängige Komponente nicht enthält oder eine aktualisierte Version der abhängigen Komponente besitzt, die keine Verweise auf die erforderliche Komponente enthält. Ihr Ziel ist es, jeden Verweis auf die erforderlichen Komponenten in der neuen Version der Lösung zu entfernen.
- Exportieren Sie die neue Version der Lösung.
- Aktualisieren Sie diese Lösung in der Zielumgebung.
- Wiederholen Sie die Deinstallation.
Wenn Sie versuchen, eine Lösung zu aktualisieren
In diesem Fall müssen Sie bestätigen, dass Sie die erforderliche Komponente löschen wollten (denken Sie daran, dass Abhängigkeiten nur bei Komponenten erzwungen werden, die gelöscht werden).
Wenn Sie die Komponente nicht löschen wollten, können Sie die neue Version der Lösung reparieren, indem Sie die Komponente wieder hinzufügen, indem Sie wie folgt vorgehen:
- Deinstallieren Sie in der Zielumgebung die abgestufte Lösung (die Lösung, die mit _Upgrade endet).
- Fügen Sie in der Quellumgebung die erforderlichen Komponente wieder zur Lösung hinzu.
- Exportieren Sie die neue Version.
- Versuchen Sie das Upgrade erneut.
Wenn die Löschung absichtlich erfolgt, müssen Sie die Abhängigkeit entfernen. Versuchen Sie die im vorhergehenden Abschnitt Wenn Sie versuchen, eine Lösung zu deinstallieren beschriebenen Schritte.
Ebenen und Abhängigkeiten
Die abhängigen Komponenten können geschichtet sein, so dass Sie eventuell mehr als eine Lösung ändern müssen, um eine Abhängigkeit vollständig zu entfernen. Der Abhängigkeitsrahmen berechnet nur die Abhängigkeiten zwischen den obersten Schichten für die erforderlichen und abhängigen Komponenten. Das bedeutet, dass Sie sich von den Lösungen der abhängigen Komponente von oben nach unten vorarbeiten müssen.
Betrachten Sie folgendes Szenario:
Sie versuchen, Lösung - Benutzerdefinierte Entität zu deinstallieren, und der Vorgang wird durch Abhängigkeiten blockiert.
Sie beginnen mit der Diagnose der Abhängigkeit, indem Sie Lösungsebenen auf das Attribut new_numberfield wählen. Der folgende Bildschirm wird angezeigt:
Da Abhängigkeiten nur zwischen den obersten Schichten jeder Komponente erzeugt werden, besteht der erste Schritt darin, sich mit der Abhängigkeit zwischen dem Attribut new_numberfield in SolutionCustomEntity und dem Test Workflow Workflow in SolutionWorkflow3 zu befassen.
Um die Abhängigkeit zu entfernen, entschließen Sie sich, SolutionWorkflow3 zu deinstallieren. Sie tun dies, aber wenn Sie versuchen, die Lösung erneut zu deinstallieren, werden Sie von der gleichen Seite der Abhängigkeiten präsentiert:
Die Spalte new_numberfield wird jedoch nicht mehr aufgeführt, auch wenn sie in mehreren Ebenen existierte.
Aktionen zur Beseitigung einer nicht verwalteten Abhängigkeit
Um nicht verwaltete Abhängigkeiten zu entfernen, müssen Sie direkt auf die Komponenten einwirken, nicht auf die Lösungen, zu denen sie gehören. Wenn Sie z. B. die Abhängigkeiten zwischen einer Spalte und einem Formular entfernen möchten, müssen Sie es im Formulardesigner bearbeiten und die Spalte aus dem Formular entfernen. Die Abhängigkeit wird entfernt, nachdem Sie Speichern und Veröffentlichen ausgewählt haben.
Anmerkung
- Mit dem Befehl Abhängigkeiten anzeigen können Sie Maßnahmen ergreifen, um die Abhängigkeit anzuzeigen, zu entfernen, die Komponente zu bearbeiten oder zu löschen. Mehr Informationen: Abhängigkeiten für eine Komponente anzeigen
- Die Schaltfläche Abhängigkeiten anzeigen wird angezeigt, wenn Sie versuchen, eine Komponente mit Abhängigkeiten zu löschen. Auf diesem Bildschirm können Sie zwar die Abhängigkeit anzeigen, aber keine Maßnahmen ergreifen.
- Wenn Sie die abhängige Komponente löschen, löscht die Aktion alle Abhängigkeiten zusammen mit der Komponente.
Um die Abhängigkeiten einer Komponente anzuzeigen, öffnen Sie im Bereich Lösungen die gewünschte Lösung, wählen Sie die vertikalen Auslassungspunkte neben der Komponente und dann Erweitert>Abhängigkeiten anzeigen.
Die Seite der Abhängigkeiten besteht aus zwei verschiedenen Teilen:
- Abhängige Komponenten: Eine Liste von Komponenten, die von der ausgewählten Spalte abhängen. Mit anderen Worten, diese Komponenten haben diese Spalte als ihre erforderliche Komponente.
- Erforderliche Komponenten: Eine Liste der Komponenten, die für die Funktion dieser Spalte erforderlich sind. Mit anderen Worten, diese Komponenten haben diese Spalte als abhängige Komponente.