Blog

Ändern der Standard CheckIn-Aktion in TFS

Cornell Knulst

Aktualisiert Oktober 22, 2025
4 Minuten
Tweeten

Vor einigen Wochen wurde ich von einem Team gefragt, ob es möglich sei, die standardmäßige CheckIn-Aktion für die Zuordnung eines Arbeitsgegenstands zu einem CheckIn in TFS zu ändern. Nachdem ich verschiedene Lösungen gefunden hatte, dachte ich, dass es hilfreich wäre, die verschiedenen Optionen, die ich gefunden hatte, mit Ihnen zu teilen.

Wo liegt also das Problem?

Wie Sie wissen, müssen Sie, wenn Sie einen Arbeitsgegenstand mit Ihrem Check-In in TFS verknüpfen möchten, zwischen zwei CheckIn-Aktionen wählen: Assoziieren oder Auflösen. Die erste, Assoziieren, dient nur dazu, das Arbeitsobjekt mit dem zukünftigen Changeset zu verknüpfen. Die zweite, Resolve , schließt das Workitem beim Einchecken automatisch ab.

Abbildung 1 - Standard CheckIn Aktion ist Auflösen
Abbildung 1 - Standard CheckIn Aktion ist Auflösen

Standardmäßig wählt Ihr Visual Studio-Client beim Einchecken die Aktion Auflösen aus. In manchen Situationen ist dies sehr hilfreich. Wenn Sie jedoch die meiste Zeit die Aktion Assoziieren verwenden möchten, ist es sehr lästig und ineffizient, bei jedem Einchecken die Aktion CheckIn zu ändern. Eine Lösung für dieses Problem ist, die Standardaktion CheckIn in Associate zu ändern . Aber wie kann man das erreichen?

Die Lösungen

Es gibt zwei Lösungen, um die standardmäßige CheckIn-Aktion in Associate zu ändern:

  1. Serverseite - Entfernen Sie die Aktion "Auflösen" aus den verschiedenen Workitem-Typen

Die erste Lösung besteht darin, die Aktion Resolve aus den verschiedenen Workitem-Typen in Ihrem Team Project zu entfernen. Dies können Sie erreichen, indem Sie die Check-In-Aktionen (in XML gekennzeichnet durch das Element <ACTION value="Microsoft.VSTS.Actions.CheckIn"/> ) aus den verschiedenen Übergängen in Ihren Workitem-Typen entfernen, indem Sie den TFS Power Tools Process Editor oder einen geeigneten XML-Editor verwenden.

Abbildung 2 - Entfernen der Aktion Einchecken aus der XML-Datei des Workitem-Typs
Abbildung 2 - Entfernen der Aktion Einchecken aus der XML-Datei des Workitem-Typs

Hinweis: Wenn Sie sich für einen geeigneten XML-Editor entscheiden, vergessen Sie nicht, die geänderten Workitem-Typen in Ihr Teamprojekt zu importieren.

Ausgehend von der Prozessvorlage Ihres Team-Projekts müssen Sie möglicherweise die folgenden Workitem-Typen ändern:

SCRUM VorlageAgile VorlageCMMI-Vorlage
  • Antrag auf Codeüberprüfung
  • Aufgabe
  • Fehler
  • Antrag auf Codeüberprüfung
  • Ausgabe
  • Aufgabe
  • Anwenderbericht
  • Fehler
  • Antrag auf Änderung
  • Antrag auf Codeüberprüfung
  • Ausgabe
  • Anforderung
  • Aufgabe

Der Hauptvorteil dieser Lösung ist, dass sie das Problem serverseitig löst, so dass Sie in einem Rutsch für alle Visual Studio-Clients, die sich mit Ihrem Team Project verbinden, fertig sind. Allerdings gibt es auch einige Nachteile dieser Lösung. Der wichtigste ist, dass die verschiedenen Visual Studio-Benutzer nicht mehr in der Lage sind, die Aktion Auflösen zu verwenden. Andere Nachteile sind:

  • Sie benötigen mindestens die Rolle des Projektadministrators, um diese Änderungen vorzunehmen.
  • Sie nehmen Änderungen an den Standardprozessvorlagen vor, die von Microsoft geliefert werden. Je mehr Anpassungen Sie in Ihrer Prozessvorlage vornehmen, desto größer ist der Aufwand, den Sie für zukünftige Prozessvorlagen-Synchronisationen betreiben müssen.
  1. Client-Seite - Ändern des Wertes ResolveAsDefaultCheckinAction in der Registrierung

Eine andere Lösung besteht darin, den Wert der Zeichenfolge ResolveAsDefaultCheckinAction in der Registrierung auf false zu ändern. Dieser Wert muss auf allen Client-Rechnern für alle Versionen von Visual Studio geändert werden und ändert die standardmäßige Eincheck-Aktion in Visual Studio in Assoziieren. Der große Vorteil dieser Lösung ist, dass die Benutzer beim Einchecken immer noch die Aktion Auflösen auswählen können.

Abbildung 3 - Ändern des Wertes der Zeichenfolge ResolveAsDefaultCheckinAction in der Registrierung
Abbildung 3 - Ändern des Wertes der Zeichenfolge ResolveAsDefaultCheckinAction in der Registrierung

Um dieses Verhalten für Ihren Visual Studio-Client zu ändern, müssen Sie den String-Wert ResolveAsDefaultCheckinAction in einem der folgenden Registrierungsschlüssel ändern:

VS2010 - HKCU:SoftwareMicrosoftVisualStudio10.0TeamFoundationSourceControlBevavior
VS2012 - HKCU:SoftwareMicrosoftVisualStudio11.0TeamFoundationSourceControlBehavior
VS2013 - HKCU:SoftwareMicrosoftVisualStudio12.0TeamFoundationSourceControlBehavior

Nachdem Sie diese Änderung im Registrierungsschlüssel vorgenommen haben, müssen Sie alle Ihre Visual Studio-Instanzen neu starten. Wenn die Änderungen nicht von Ihrem Visual Studio-Client übernommen werden, führen Sie devenv /setup über die Visual Studio Developer-Eingabeaufforderung aus, um Visual Studio zu zwingen, die neuen Registrierungseinstellungen zu übernehmen. Wenn alles gut gegangen ist, sehen Sie, dass die Aktion Assoziieren standardmäßig ausgewählt wurde.

Abbildung 4 - Standard CheckIn Aktion ist Zuordnen
Abbildung 4 - Standard CheckIn Aktion ist Zuordnen

Der große Vorteil dieser Lösung ist, dass Sie die Prozessvorlage nicht ändern müssen. Andere Vorteile sind:

  • Die Benutzer können weiterhin die Aktion Auflösen verwenden;
  • Jeder Benutzer kann seine eigene Standard-CheckIn-Aktion wählen;

Die Nachteile dieser Lösung sind:

  • Bei einigen Visual Studio-Clients vor Visual Studio 2012 wird diese Lösung nicht funktionieren.
  • Jedes Mal, wenn Sie eine neue Hauptversion von Visual Studio auf Ihrem Client-Rechner installieren, müssen Sie den String-Wert ResolveAsDefaultCheckinAction im Registrierungsschlüssel ändern, um die Standard-CheckIn-Aktion für diese Visual Studio-Version zu ändern.

Welche Option soll ich wählen?

Ich habe dem Team die zweite Lösung empfohlen, da sie immer noch die Aktion "Auflösen" bietet und die Prozessvorlage nicht ändert. Wir haben akzeptiert, dass die Lösung für einige VS2010-Benutzer nicht funktioniert, da wir erwarten, dass VS2010 in naher Zukunft durch VS2013 ersetzt wird.

Um den zweiten Nachteil dieser Lösung zu minimieren, habe ich ein Powershell-Skript erstellt, das die erforderlichen Registrierungswerte automatisch ändert. Es funktioniert sowohl für VS2010, VS2012 und VS2013.

Verfasst von

Cornell Knulst

Cornell works for Xpirit, Hilversum, The Netherlands, as a trainer/architect. He is specialized in the domain of Application Lifecycle Management and Continuous Delivery, with a special focus on Microsoft-based technologies.

Contact

Let’s discuss how we can support your journey.