2012-12-20 13 views
5

Próbuję zaktualizować lokalne pliki z TFS, ale nie mogę go uruchomić. Nie wiem nawet, dlaczego to się nie udaje, ponieważ TFS nie rzuca mi wyjątku ani niczego, po prostu milczy mi i nie aktualizuje niczego.Pobierz najnowszą wersję pliku z 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; 
    } 
} 

muszę dodać, że wszystkie inne formy komunikacji z TFS jest dobrze, pendingchanges, zameldowania lub wymeldowania wszyscy pracujemy. To dość frustrujące.

+1

Zgodnie z [docs] (http://msdn.microsoft.com/en-us/library/bb139316%28v=vs.80%29.aspx), 'WorkSpace.Get()' powinien zwrócić [ GetStatus] (http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.versioncontrol.client.getstatus%28v=vs.80%29.aspx) obiekt informujący o liczbie ostrzeżeń/niepowodzeń/konfliktów były - jeśli to przechowujesz i sprawdzasz w debugowaniu, brzmi to tak, jakby mogło mieć potrzebne informacje. – Bridge

Odpowiedz

3

Chociaż nie posiadałem wcześniejszej wiedzy w tej sprawie, pomyślałem, że poszerzę nieco mój komentarz w nadziei, że może to pomóc (ponieważ nikt inny nie wydaje się odpowiadać).

Zgodnie z documentation, WorkSpace.Get() powinien zwrócić obiekt GetStatus, który mówi, ile ostrzeżeń/awarii/konfliktów było - w chwili, gdy po prostu wyrzucasz te informacje.

Jeśli chcesz się zalogować niepowodzenia w uzyskaniu ostatni w ten sam sposób, że jesteś z logowaniem inne błędy, możesz spróbować czegoś takiego:

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; 
    } 
} 

ja pisałem to w edytorze tekstu raczej niż właściwe IDE, więc przepraszam jeśli zrobiłem literówkę/zrobiłem coś głupiego.

+0

Dziękuję bardzo za odpowiedź. Problem był gdzieś w mapowaniu obszaru roboczego, co było całkowicie dziwne, ponieważ inne funkcje działały, ale te informacje były bardzo pomocne! – Flobbo

Powiązane problemy