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.
Das Solution Packager-Tool kann für jedes beliebige Quellcodeverwaltungssystem verwendet werden. Nachdem eine Lösungs-ZIP-Datei in einen Ordner extrahiert wurde, fügen Sie einfach die Dateien zu Ihrem Quellcodeverwaltungssystem hinzu. Diese Dateien können dann auf einem anderen Computer synchronisiert werden, wo sie in eine neue identische Lösungs-ZIP-Datei gepackt werden können.
Ein wichtiger Aspekt der Verwendung extrahierter Komponentendateien bei der Quellcodeverwaltung besteht darin, dass das Hinzufügen aller Dateien zur Quellcodeverwaltung zu unnötigen Duplizierungen führen kann. Siehe Dateireferenz von Lösungskomponenten, um zu überprüfen, welche Dateien für jeden Komponententyp generiert werden und welche Dateien für die Verwendung in der Quellcodeverwaltung empfohlen werden.
Wenn weitere Anpassungen und Änderungen für die Lösung erforderlich sind, sollten Entwickler vorhandene Komponenten mit bestehenden Methoden bearbeiten oder anpassen, sie erneut exportieren, um eine ZIP-Datei zu erstellen und die komprimierte Lösungsdatei in den gleichen Ordner zu extrahieren.
Wichtig
Außer in den in Wann die Anpassungsdatei bearbeitet werden sollte beschriebenen Abschnitte wird das manuelle Bearbeiten extrahierter Komponentendateien und ZIP-Dateien nicht unterstützt.
Wenn das Solution Packager-Tool die Komponentendateien extrahiert, überschreibt es nicht die vorhandenen Komponentendateien mit demselben Namen, wenn der Inhalt der Dateien identisch ist. Darüber hinaus beachtet das Tool das "Schreibgeschützt"-Attribut der Komponentendateien und gibt eine Warnung im Konsolenfenster aus, dass bestimmte Dateien nicht überschrieben wurden. Dieser Schutz ermöglicht es dem Benutzer, aus der Versionskontrolle den minimalen Satz von Dateien auszulesen, die sich ändern. Der Parameter /clobber kann verwendet werden, um die Berechtigungen zu überschreiben und das Schreiben oder Löschen von schreibgeschützten Dateien zu ermöglichen. Der Parameter /allowWrite kann verwendet werden, um zu bewerten, welche Auswirkungen ein Extrahierungsvorgang hat, ohne dass dabei Dateien geschrieben oder gelöscht werden. Die Verwendung des Parameters /allowWrite mit ausführlicher Protokollierung ist effektiv.
Nach dem Abschluss des Extrahierungsvorgangs mit dem Auschecken des Minimalsatzes von Dateien aus der Quellcodeverwaltung kann der Entwickler die geänderten Dateien wieder in die Quellcodeverwaltung zurückgeben, wie bei anderen Dateitypen auch.
Dateiformate für die Quellcodeverwaltung
Das Solution Packager-Tool unterstützt zwei Dateiformate für extrahierte Komponentendateien. Wenn Sie das richtige Format vorab auswählen, müssen Sie Ihre Repositorystruktur später nicht migrieren.
| XML-Format (veraltet) | YAML-Quellcodeverwaltungsformat | |
|---|---|---|
| Lösungsmanifest | Other\Solution.xml + Other\Customizations.xml |
solutions/<name>/solution.yml und Unterstützung von YAML-Dateien |
| Lesbarkeit | Ausführliche XML-Datei | Komprimieren von YAML – einfacher zu lesen und zu überprüfen |
| Diff-Qualität in Git | Große XML-Differenzen | Minimale, zielgerichtete Unterschiede |
| Multilösungs-Repository | Nicht unterstützt | Unterstützt – mehrere Lösungen teilen einen Ordner |
| Canvas Apps (.msapp) | Nicht unterstützt | Unterstützt |
| Moderne Flüsse | Nicht unterstützt | Unterstützt |
| Native Git-Integration | Nicht verwendet | Immer verwendet – Git-Integration schreibt immer YAML |
Gründe für die Verwendung des YAML-Formats: Für alle neuen Projekte und wann immer Sie native Dataverse Git-Integration verwenden. Das YAML-Format ist vorwärtskompatibel und erzeugt einen saubereren Änderungsverlauf.
Gründe für die Verwendung des XML-Formats: Nur wenn Sie mit vorhandenen Repositorys arbeiten, die bereits das XML-Format verwenden, oder wenn Sie ältere Tools verwenden, die YAML nicht unterstützen.
Hinweis
Wenn Sie Lösungen mithilfe der nativen Git-Integration in Power Apps übernehmen, werden sie immer im YAML-Quellcodeverwaltungsformat gespeichert. Zum manuellen Packen oder Entpacken dieser Quelle mithilfe von SolutionPackager oder pac solution pack, muss der Ordner der YAML-Ordnerstruktur folgen. Weitere Informationen: SolutionPackager-Tool – Dateiformate für Quellcodeverwaltung
Team-Entwicklung
Wenn mehrere Entwickler an derselben Lösungskomponente arbeiten, entsteht möglicherweise ein Konflikt, wobei Änderungen von zwei Entwicklern zu Änderungen an einer einzelnen Datei führen. Diese Gefahr wird vermindert, indem jede einzeln bearbeitbare Komponente oder Unterkomponente in eine distinkte Datei zerlegt wird. Betrachten Sie das folgende Beispiel.
Entwickler A und Entwickler B arbeiten beide an derselben Lösung.
Auf eigenständigen Computern beziehen sie die neuesten Quellen der Lösung aus der Quellcodeverwaltung, packen sie und importieren eine nicht verwaltete ZIP-Datei in unabhängige Microsoft Dataverse-Organisationen.
Entwickler A passt die Systemansicht "Aktive Kontakte" und das Hauptformular für die Kontaktentität an.
Entwickler B passt die Hauptformular für die Kontoentität an und ändert die Ansicht „Kontaktsuche”.
Beide Entwickler exportieren eine nicht verwaltete Lösungs-ZIP-Datei und extrahieren sie.
Entwickler A muss eine Datei für das Hauptformular "Kontakt" und eine Datei für die Ansicht "Aktive Kontakte" auschecken.
Entwickler B muss eine Datei für das Kontohauptformular und eine Datei für Ansicht „Kontaktsuche” auschecken.
Beide Entwickler können, in beliebiger Reihenfolge, ihre Dateien einreichen, da sich ihre Änderungen auf verschiedene Dateien auswirken.
Wenn beide Einreichungen abgeschlossen sind, können Sie Schritt 2 wiederholen und dann weitere Änderungen in ihren unabhängigen Organisationen vornehmen. Beide haben beide Sätze von Änderungen, ohne dass ihre Arbeit überschrieben wurde.
Dieses Beispiel funktioniert nur bei Änderungen an separaten Dateien. Es ist unvermeidlich, dass unabhängige Anpassungen Änderungen innerhalb einer einzelnen Datei erfordern. Berücksichtigen Sie basierend auf dem zuvor gezeigten Beispiel, dass Entwickler B die Ansicht "Aktive Kontakte" angepasst hat, während Entwickler A sie ebenfalls anpassen konnte. Im nächsten Beispiel ist jedoch die Reihenfolge der Ereignisse wichtig. Der korrekte Prozess zur Lösung dieses Problems wird hier ausführlich beschrieben.
Entwickler A und Entwickler B arbeiten beide an derselben Lösung.
Auf unabhängigen Computern erhalten beide die neuesten Quellen der Lösung von der Quellcodeverwaltung, packen und importieren eine nicht verwaltete Lösungs-ZIP-Datei in unabhängige Organisationen.
Entwickler A passt die Systemansicht "Aktive Kontakte" und das Hauptformular für die Kontakttabelle an.
Entwickler B passt das Hauptformular der Kontotabelle an und ändert die aktiven Kontakte.
Beide Entwickler exportieren eine nicht verwaltete Lösungs-ZIP-Datei und extrahieren sie.
Entwickler A muss eine Datei für das Hauptformular "Kontakt" und eine Datei für die Ansicht "Aktive Kontakte" auschecken.
Entwickler B müssen eine Datei für das Hauptformular "Konto" und eine Datei für die Ansicht "Aktive Kontakte" auschecken.
Entwickler A ist zuerst fertig.
Bevor Entwickler A seine Arbeit an die Quellcodeverwaltung übergibt, muss er die neuesten Quellen erhalten, um sicherzustellen, dass keine vorherigen Eincheckungen im Konflikt mit seinen Änderungen stehen.
Es gibt keine Konflikte, deshalb kann Entwickler A seine Arbeit einreichen.
Entwickler B ist bereit, nachdem Entwickler A fertig ist.
Bevor Entwickler B seinen Code überprüft, muss er die neuesten Quellen abrufen, um zu gewährleisten, dass keine vorherigen Eincheckungen mit seinen Änderungen in Konflikt stehen.
Es gibt einen Konflikt, weil die Datei für "Aktive Kontakte" geändert wurde, seitdem Entwickler B zuletzt die neuesten Quellen abgerufen hat.
Entwickler B muss den Konflikt auflösen. Es ist möglich, dass die Funktionen des verwendeten Quellcodeverwaltungssystems diesen Prozess unterstützen; andernfalls bestehen die folgenden Möglichkeiten.
Entwickler B kann über die Quellcodeverwaltungshistorie, falls verfügbar, sehen, dass Entwickler A die Änderung vorgenommen hat. Durch direkte Kommunikation können sie jede Änderung besprechen. Dann muss Entwickler B lediglich die Organisation mit der besprochenen Änderung aktualisieren. Entwickler B exportiert, extrahiert und überschreibt dann die fragliche Datei und reicht sie ein.
Erlauben Sie der Quellcodeverwaltung, die lokale Datei zu überschreiben. Entwickler B packt die Lösung und importiert sie in seine Organisation, dann prüft er den Status der Ansicht und passt sie gegebenenfalls erneut an. Anschließend kann der Entwickler B die fragliche Datei exportieren, extrahieren und überschreiben.
Wenn die vorherige Änderung als unnötig angesehen werden kann, erlaubt Entwickler B, dass seine Kopie der Datei die Version in der Quellcodeverwaltung überschreibt, und reicht sie ein.
Ob in gemeinsam genutzten oder unabhängigen Umgebungen, die Team-Entwicklung von Dataverse-Lösungen erfordert, dass alle, die an einer gemeinsamen Lösung arbeiten, die Arbeit der anderen beteiligten kennen. Das Solution Packager-Tool beseitigt diese Notwendigkeit nicht vollständig, ermöglicht jedoch das einfache Zusammenführen von nicht in Konflikt stehenden Änderungen auf Quellsteuerungsebene und markiert proaktiv die Komponenten, wo Konflikte auftreten.
Die folgenden Abschnitte enthalten die generischen Prozesse für die effektive Verwendung des Solution Packager-Tools in der Quellcodeverwaltung bei der Entwicklung in Teams. Diese funktionieren gleichermaßen in unabhängigen und in gemeinsam genutzten Entwicklungsumgebungen, obwohl im letzteren Fall der Export und die Extrahierung natürlich alle Änderungen beinhalten, die innerhalb der Lösung vorgenommen wurden, und nicht nur die, die der Entwickler vorgenommen hat, der den Export durchführt. Entsprechend tritt beim Import einer Lösungs-ZIP-Datei das natürliche Verhalten des Überschreibens aller Komponenten auf.
Lösung erstellen
Diese Prozedur identifiziert die typischen Schritte bei der ersten Erstellung einer Lösung.
Erstellen Sie in einer sauberen Umgebung mit Dataverse eine Lösung und erstellen Sie dann nach Bedarf die Komponenten, oder fügen Sie sie hinzu.
Wenn Sie bereit sind zum Einchecken, gehen Sie wie folgt vor.
Exportieren Sie die nicht verwaltete Lösung.
Extrahieren Sie mithilfe des Solution Packager-Tools die Lösung in Komponentendateien.
Fügen Sie aus diesen extrahierten Komponentendateien die erforderlichen Dateien der Quellcodeverwaltung hinzu.
Übergeben Sie diese Änderungen an die Quellcodeverwaltung.
Ändern einer Lösung
Die folgende Prozedur identifizeirt die typischen Schritte beim Ändern einer vorhandenen Lösung.
Synchronisieren Sie die neuesten Lösungskomponenten-Dateiquellen oder greifen Sie auf sie zu.
Packen Sie mit dem Solution Packager-Tool die Komponentendateien in eine nicht verwaltete ZIP-Lösungsdatei.
Importieren Sie die Datei der nicht verwalteten Lösung in eine Umgebung.
Passen Sie die Lösung nach Bedarf an.
Wenn Sie bereit sind, die Änderungen in die Versionsverwaltung einzuchecken, folgen Sie diesen Schritten.
Exportieren Sie die nicht verwaltete Lösung.
Extrahieren Sie mithilfe des Solution Packager-Tools die exportierte Lösung in Komponentendateien.
Synchronisieren Sie die neuesten Quellen, oder rufen Sie sie aus der Quellcodeverwaltung ab.
Lösen Sie eventuelle Konflikte.
Übergeben Sie die Änderungen an die Quellcodeverwaltung.
Die Schritte 2 und 3 müssen ausgeführt werden, bevor weitere Anpassungen in der Entwicklungsorganisation vorgenommen werden. In Schritt 5 muss Schritt b vor Schritt c abgeschlossen werden.
Siehe auch
Dateireferenz von Lösungskomponenten (SolutionPackager)
SolutionPackager-Tool
Dateiformate für die Quellcodeverwaltung