2012-12-20 21 views
5

Ich versuche lokale Dateien von TFS zu aktualisieren, aber ich kann es nicht zum Laufen bringen. Ich weiß nicht einmal, warum es scheitert, weil TFS mir keine Ausnahme oder so etwas vorwirft, es trotzt mir einfach still und aktualisiert nichts.Holen Sie sich die neueste Version der Datei von TFS

public bool getLatest(string[] items) 
{ 
    try 
    { 
     Workspace myWorkspace = createWorkspace(); 
     myWorkspace.Get(items, 
         VersionSpec.Latest, 
         RecursionType.Full, 
         GetOptions.Overwrite); 

     return true; 
    } 
    catch (Exception ex) 
    { 
     Tools.MessageLogger.LogError(ex.Message); 
     return false; 
    } 
} 

Ich muss hinzufügen, dass alle anderen die Kommunikation mit dem TFS nur in Ordnung ist, pendingchanges, checkin oder Kasse arbeiten alle. Das ist ziemlich frustrierend.

+1

Laut der [docs] (http://msdn.microsoft.com/en-us/library/bb139316%28v=vs.80%29.aspx) sollte 'WorkSpace.Get()' eine [ GetStatus] (http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.versioncontrol.client.getstatus%28v=vs.80%29.aspx) Objekt, das Ihnen sagt, wie viele Warnungen/Fehler/Konflikte Es gab - wenn Sie dies speichern und es in Debug überprüfen, es klingt, als könnte es die Informationen haben, die Sie benötigen. – Bridge

Antwort

3

Während ich keine Vorkenntnisse in diesem Bereich habe, dachte ich, ich würde meinen Kommentar ein wenig erweitern, in der Hoffnung, dass es helfen könnte (wie sonst niemand zu beantworten scheint).

Nach dem documentation sollte WorkSpace.Get() zurückgeben GetStatus Objekt, das Ihnen sagt, wie viele Warnungen/Ausfälle/Konflikte dort wurden - im Moment sind Sie nur entfernt diese Informationen zu werfen.

Wenn Sie die Fehler in immer spätestens in der gleichen Art und Weise, die Sie Protokollierung andere Fehler protokollieren möchten, können Sie diese Art der Sache versuchen:

public bool getLatest(string[] items) 
{ 
    try 
    { 
     Workspace myWorkspace = createWorkspace(); 

     var results = myWorkspace.Get(items, VersionSpec.Latest, RecursionType.Full, GetOptions.Overwrite); 
     var failures = results.GetFailures(); 

     foreach(var fail in failures) 
     { 
      Tools.MessageLogger.LogError(fail.GetFormattedMessage()); 
     } 

     return failures.Count == 0; 
    } 
    catch (Exception ex) 
    { 
     Tools.MessageLogger.LogError(ex.Message); 
     return false; 
    } 
} 

ich dies in einem Texteditor geschrieben hat eher als eine richtige IDE, also Entschuldigung, wenn ich einen Tippfehler gemacht habe/etwas Dummes getan habe.

+0

Vielen Dank für Ihre Antwort. Das Problem war irgendwo im Arbeitsbereich Mapping, das war total komisch, weil die anderen Funktionen funktionierten, aber diese Information war sehr hilfreich! – Flobbo

Verwandte Themen