Freigeben über


Bewährte Vorgehensweisen für das Implementieren eines Quellcodeverwaltungs-Plug-Ins

Die folgenden technischen Details können Ihnen helfen, zuverlässig ein Quellcodeverwaltungs-Plug-In in Visual Studiozu implementieren.

Speicherverwaltungs-Management-Themen

In den meisten Fällen belegt die integrierte Entwicklungsumgebung (IDE), die der Aufrufer festgelegt ist, gibt and Storage. Das Quellcodeverwaltungs-Plug-In gibt Zeichenfolgen und andere Elemente in den vom Aufrufer reservierten Puffer zurück. Ausnahmen werden in den Beschreibungen von speziellen Features aufgeführt, in denen diese auftreten.

Array von Dateinamen

Wenn ein Array von Dateien übergeben wird, wird es nicht als zusammenhängendes Array von Dateinamen übergeben. Es wird als Array von Zeigern auf den Dateinamen übergeben. Beispielsweise kann in SccGet-Funktionwerden die Dateinamen durch den lpFileNames-Parameter übergeben, in dem lpFileNames tatsächlich ein Zeiger auf char **ist. lpFileNames[0] ist ein Zeiger auf den Vornamen, lpFileNames[1] Ein Zeiger auf den zweiten Titel usw.

Großes Modell

Alle Zeiger sind 32 Bits, sogar auf 16-Bit-Betriebssystemen.

Vollqualifizierte Pfade

Wo Dateinamen oder Verzeichnisse als Argumente angegeben werden, müssen sie vollqualifizierte Pfade und UNC-Pfade, ohne die Ende umgekehrten schrägstriche sein. Es liegt in der Verantwortung des Quellcodeverwaltungs-Plug-In, diese zu relativen Pfaden zu übersetzen, wenn die Anforderung des zugrunde liegenden Quellcodeverwaltungssystems ist.

Geben Sie einen vollqualifizierten Pfad für das registrierte DLLs

Die IDE lädt keine weiteren DLL von relativen Pfaden (z. B. \ NewProvider.dll). Ein vollständiger Pfad der DLL muss (z. B. C:\Providers\NewProvider.dll) angegeben werden. Diese Anforderung verstärkt die Sicherheit der IDE, indem sie das Laden der nicht autorisierte oder imitierten Quellcodeverwaltung DLL verhindert.

Prüfen Sie ein vorhandenes VSSCI-Plug-In, wenn Sie das Quellcodeverwaltungs-Plug-In installiert

Ein Benutzer, der plant, das Quellcodeverwaltungs-Plug-In installiert wird, hat ein vorhandenes Quellcodeverwaltungs-Plug-In möglicherweise bereits auf dem Computer installiert ist. Das Programm der Installation (Setup) für das Plug-In, das Sie erstellen, sollte bestimmen, ob vorhandene Werte für die relevanten Registrierungsschlüssel vorhanden ist. Wenn dieser Schlüssel bereits festgelegt werden, sollte das Installationsprogramm den Benutzer fragen, ob das Plug-In als die standardmäßige Quellcodeverwaltungs-Plug-In registriert und das ersetzt, das bereits installiert ist.

Fehler-Ergebnis-Codes und Berichterstellung

Der Quellcodeverwaltung SCC_OK Rückgabecode für eine Funktion gibt an, dass der Vorgang erfolgreich für alle Dateien verfügt. Wenn der Vorgang fehlschlägt, ist er erwartet, den zuletzt aufgetretenen Fehlercode zurückzugeben.

Die Regel für die Berichterstellung befindet sich in der IDE, wenn ein Fehler auftritt, die IDE zum Melden der zuständig ist. Wenn ein Fehler im Quellcodeverwaltungssystem auftritt, ist das Quellcodeverwaltungs-Plug-In für melden sie verantwortlich. Beispiel: „None“ Nur Dateien werden gemeldet werden von der IDE ausgewählt, während diese Datei „out“ bereits durch das Plug-In gemeldet wird.

Die Kontext-Struktur

Während des Aufrufs führt SccInitialize-Funktionder Aufrufer den ppvContext-Parameter, der ein Handle auf void ist nicht initialisiert. Das Quellcodeverwaltungs-Plug-In kann dieser Parameter ignoriert werden, oder er kann eine Struktur zur Art der zuordnen und einen Zeiger auf diese Struktur in den übergebenen Zeiger aufnehmen. Die IDE versteht diese Struktur nicht, aber es führt einen Zeiger auf diese Struktur in einen anderen Aufruf im Plug-In. Dies ermöglicht dem Plug-In cache wertvolle Kontext bereit, in dem sie verwendet werden kann, um globale Zustandsinformationen, die über Funktionsaufrufe weiterhin besteht, ohne globale Variablen zu verwenden. Das Plug-In ist für das Freigeben der Struktur auf einem Aufruf verantwortlich SccUninitialize-Funktion.

Wenn das Plug-In - Bit festgelegt (in SccInitialize-FunktionSCC_CAP_REENTRANT speziell im lpSccCaps-Parameter), mehrere Kontext strukturen werden verwendet, um alle Projekte zu verfolgen, die geöffnet sind.

Befehlsoptionen sowie andere Bitflags

Für jeden Befehl wie SccGet-Funktionviele Optionen, kann die IDE festlegen, die das Verhalten des Befehls ändern.

Die Debug-API die Einstellung bestimmter Optionen von der IDE durch den fOptions-Parameter. Diese Optionen werden zusammen mit Bitflags, die von bestimmten Befehlen verwendet werden den Befehlen beschrieben, die sie betreffen. Im Allgemeinen sind diese Optionen, für die der Benutzer nicht aufgefordert wird.

Die meisten Vom Benutzer konfigurierbar Festlegen von Optionen werden nicht auf diese Weise definiert, da sie weiter unter Quellcodeverwaltung steckverbindungen variieren. Daher ist der empfohlene Verfahren eine Erweitert Schaltfläche. Beispielsweise wird im Dialogfeld Abrufen, zeigt die IDE nur Informationen an, die er erkannt werden, aber es wird auch eine Erweitert Schaltfläche an, wenn das Plug-In Optionen für diesen Befehl verfügt. Wenn der Benutzer auf die Schaltfläche klickt, ruft Erweitert die IDE auf SccGetCommandOptions-Funktion, um das Quellcodeverwaltungs-Plug-In zu aktivieren, damit der Benutzer Informationen wie bitflags oder Datum/Uhrzeit aufgefordert. Das Plug-In gibt diese Informationen in einer Struktur zurück, die während des Reverse übergebene SccGet Befehls ist.

Siehe auch

Weitere Ressourcen

Quellcodeverwaltungs-Plug-Ins

Ein Quellcodeverwaltungs-Plug-In erstellen