2015-10-26 3 views
0

J'utilise une extension VS qui a la possibilité de fusionner des changesets. Cette extension ouvre la fenêtre 'Résoudre les conflits' si des conflits sont détectés, ce qui me permet de choisir 'Fusionner automatiquement' (désactivé), 'Fusionner dans l'outil de fusion', 'Prendre source', 'Prendre la cible', etc ...TFS Ouverture de la fenêtre Resolve Conflicts par programmation

Le problème est que la fenêtre est modale. Donc, si je veux voir la fusion dans l'outil de fusion par défaut, il ouvre la comparaison sous la forme d'une fenêtre à onglets derrière la fenêtre «Résoudre les conflits».

Le code qui ouvre la fenêtre Résoudre les conflits est la suivante:

try 
{ 
    Assembly assres = Assembly.GetAssembly(typeof(ControlAddItemsExclude)); 
    var dlgResolveConflicts = assres.GetTypes().FirstOrDefault(x => x.Name == "DialogResolveConflicts"); 
    dlgResolveConflicts.InvokeMember("ResolveConflicts", BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Static, null, null, new object[] { wrkspc, null, true, null }); 
} 
catch(Exception ex) 
{ 
    Utilities.OutputCommandString(ex.ToString()); 
    MessageBox.Show(ex.ToString()); 
} 

peut vous les gars me aider à ouvrir la fenêtre « Résoudre les conflits » de façon modales, donc je peux interagir avec l'outil de comparaison de fusion?

Meilleures salutations, Asser Fahrenholz

+0

Visual Studio 2013: 12.0.31101.00 Mise à jour 4 –

+0

.NET Framework: 4.5.51650 –

+0

J'ai également effectué des recherches approfondies sur divers forums MSDN, mais les quelques questions qui avaient des similitudes avec les miennes sont restées sans réponse. –

Répondre

2

J'ai trouvé une solution de contournement:

Lorsque la fenêtre modale ouvre des conflits manuels nécessaires, j'ouvre une autre VS2013, aller à des modifications en attente, allez résoudre les conflits, faire tout le manuel fusionne en utilisant l'outil de comparaison. Une fois cela fait, fermez le VS2013go supplémentaire à l'original VS2013 (avec la fenêtre modale toujours ouverte), appuyez sur Actualiser, fermez la fenêtre, continuez.