Überblick über Lösungen
Die Microsoft Power Platform verwendet die Lösungsfunktion von Microsoft Dataverse zum Verfolgen und Verwalten von Apps, Flows, Tabellen und sogar Entwicklercode-Komponenten wie JavaScript und Plug-Ins. Lösungen sind Container, mit denen die Transportprojektressourcen von einer Umgebung in eine andere verwendet werden können. Lösungen sind ein Kernstück der Lifecycle Management-Strategie der Microsoft Power Platform-Anwendung.
Lösungen können nicht verwaltet oder verwaltet sein.
Nicht verwaltete Lösungen – Werden in Entwicklungsumgebungen verwendet, während Sie Änderungen an Ihren Komponenten vornehmen. Innerhalb der Lösung können neue Komponenten erstellt werden, und vorhandene Komponenten innerhalb der Dataverse-Umgebung können auch hinzugefügt werden. Nicht verwaltete Lösungen können entweder als nicht verwaltete oder verwaltete exportiert werden. Exportierte nicht verwaltete Versionen Ihrer Lösungen sollten in Ihr Versionsverwaltungssystem eingecheckt werden. Mit einem Tool namens SolutionPackager können Lösungen zum Einchecken vorbereitet werden. Sie können diesen Prozess mit Microsoft Power Platform Build Tools automatisieren.
Verwaltete Lösungen – Werden zur Bereitstellung in jeder Umgebung verwendet, die für diese Lösung keine Entwicklungsumgebung ist Komponenten für verwaltete Lösungen können weder direkt in der verwalteten Lösung geändert oder daraus entfernt werden, noch können neue Komponenten hinzugefügt werden. Sie können die Komponente jedoch in eine andere, nicht verwaltete Lösung aufnehmen und dort Änderungen vornehmen. Dies sorgt für eine Abhängigkeit von der verwalteten Lösung. Verwaltete Lösungen können unabhängig von anderen verwalteten Lösungen in derselben Umgebung gewartet werden. Während Sie eine nicht verwaltete Lösung manuell als verwaltet exportieren können, wird empfohlen, verwaltete Lösungen als Build-Artefakt aus einem automatisierten Buildprozess zu generieren.
Lösungen können über das Entwicklerportal (make.powerapps.com) sowie von Entwicklern mithilfe der Plattform-API erstellt und verwaltet werden. Es gibt auch Tools wie SolutionPackager, Package Deployer, DevOps und GitHub, die Aufgaben und Aktionen erstellen, mit denen Entwickler verschiedene lösungsbezogene Aufgaben ausführen und automatisieren können.
Lösungen können geschichtet sein
In einer Umgebung können mehrere Lösungen nebeneinander existieren. Dataverse verfolgt diese mit einem Ebenenkonzept auf der Ebene der einzelnen Lösungskomponenten nach, um diese Lösungen zu verwalten. Alle nicht verwalteten Lösungen werden als einzelne Ebene nachverfolgt, während jede verwaltete Lösung separat nachverfolgt wird. Wenn mehrere Ebenen verwalteter Lösungen vorhanden sind, wird die zuletzt in einer Umgebung installierte verwaltete Lösung gegenüber zuvor importierten verwalteten Lösungen zuerst verwendet. Einige Komponenten unterstützen die Zusammenführung anstelle einer „Last-one-wins“-Methode. Beispielsweise könnte ein Formular für eine modellgesteuerte Power Apps-App durch drei verwaltete Lösungen geändert werden, wobei jede unterschiedliche Abschnitte des Formulars ändert. In diesem Beispiel wäre das zusammengeführte Ergebnis ein kombiniertes Formular mit Änderungen aus allen drei verwalteten Lösungen. Die nicht verwaltete Ebene befindet sich jedoch immer an oberster Stelle, und eine Änderung in der nicht verwalteten Ebene überschreibt alle Änderungen von verwalteten Lösungen in einer Umgebung. Letztendlich sieht ein Benutzer eine Kombination aller Lösungsebenen in einer Umgebung. Das folgende Bild zeigt dieses Konzept.
Das Ebenenkonzept ist der Schlüssel dafür, dass mehrere Lösungen in einer einzigen Umgebung zusammenarbeiten können. Es erleichtert auch das Ermöglichen weiterer Anpassungen von Komponenten aus einer verwalteten Lösung.
Lösungsabhängigkeiten
Lösungskomponenten sind oft von anderen Lösungskomponenten abhängig. Die Lösungslaufzeit verfolgt diese Abhängigkeiten nach, um sicherzustellen, dass Lösungen nicht entfernt werden können, wenn sie von einer anderen Lösung abhängig sind.
Power Platform CLI verwenden, um mit Lösungen zu arbeiten
Entwickler können zusätzlich zur Verwendung der Entwicklerportale auch die Power Platform CLI zum Ausführen vieler Lösungsverwaltungsaufgaben verwenden.
Das Folgende würde zum Beispiel ein Verzeichnis mit einem neuen Dataverse-Lösungsprojekt initialisieren und fügt dann einen Verweis auf eine vom Entwickler erstellte PCF-Slicer-Komponente hinzu.
pac solution init --publisher-name developer --publisher-prefix dev
pac solution add-reference --path c:\Users\Downloads\SliderComponent
Lösungsverpackung
Aus einer Dataverse-Umgebung exportierte Lösungen sind einfach eine komprimierte ZIP-Datei mit den enthaltenen Metadaten. Als einzelne Binärdatei ist sie nicht effektiv oder nützlich, wenn sie in einem Quellcodeverwaltungs-Repository abgelegt wird.
Zum Erleichtern eines Quellcodeverwaltung-Paket-Tools kann eine Dataverse-Lösung entpacken in einer Serie von XML-Dateien und anderen Dateien, sodass diese Dateien einfach von einer Quellcodeverwaltung verwaltet werden. Lösungsverpackungstools können die Lösungs-ZIP-Datei auch mithilfe der extrahierten Komponenten neu packen.
Entwickler können folgende Tools verwenden, die die Unterstützung der Lösungspaketierung implementieren:
- Power Platform CLI
- Power Platform Build Tools zur Implementierung der Automatisierung
- SolutionPackager-Tool
Lösungsverpackung mit Power Platform CLI
Folgendes würde beispielsweise eine Lösung aus Dataverse exportieren und alle einzelnen Dateien mithilfe der SolutionPackager-Logik entpacken.
pac solution pack --zipfile C:\MyProject.zip --folder .\MyProjectUnpacked\.
pac solution unpack --zipfile C:\MyProject.zip --folder .\MyProjectUnpacked\.
SolutionPackager-Tool
Das SolutionPackager-Toll wird als Teil des NuGet-Pakets Microsoft.CrmSdk.CoreTools bereitgestellt.
Das SolutionPackager-Tool ist eine ausführbare Datei, mit der Sie die folgenden Aktionen ausführen können:
Extrahieren: Entpacken von .zip-Dateien in einen Ordner
Komprimieren: Komprimieren eines Ordners in eine .zip-Datei
Es unterstützt verschiedene Arten von Befehlszeilenargumenten, mit denen Sie bestimmte Aktionen als Teil Ihres Vorgangs zum Extrahieren/Komprimieren von Lösungen ausführen können. Ausführliche Informationen zur Verwendung des SolutionPackager-Tools finden Sie im Artikel SolutionPackager-Tool.
Manchmal ist es erforderlich, um Elemente wie Webressourcen oder Plug-In-Assemblys zu verwalten, die in separaten Projekten erstellt und verwaltet werden. Dazu müssen Dateien innerhalb einer Lösung von ihrem Standardspeicherort in einem Extraktordner auf ihren Speicherort im entsprechenden Projektverzeichnis abgebildet werden. Beispielsweise befindet sich eine Plug-In-Assembly normalerweise im Lagerplatzausgabe-Ordner des Plug-In-Assembly-Projekts. Zu diesem Zweck können Sie die Zuordnung dieser Speicherorte mit dem Argument „/map“ verwalten. Eine ausführliche Erläuterung zum Erstellen eines XML-Zuordnungsdokuments finden Sie unter Verwenden des Befehlsarguments /map.
Während SolutionPackager manuell eigenständig ausgeführt werden kann, wird es häufiger als Teil eines automatisierten Erstellungsprozesses ausgeführt. Beide Microsoft Power Platform Azure DevOps erstellen Aufgaben, und GitHub Actions enthalten Schritte, mit denen SolutionPackager zum Entpacken und Packen einer Lösung verwendet wird.