TFS 2008 adds improved support for "offline" scenarios.  This blog post identifies the scenarios under which a solution will be placed in "offline" mode.

  1. If the Visual Studio IDE is unable to connect to the TFS server when it is opening the solution, then it will mark the solution as being offline.  It will also mark the TFS server as being offline.

    A messagebox will be displayed indicating the solution was taken offline and a message to the same effect will appear in the Output window.

    -OR-
  2. If the Visual Studio IDE is opening a solution and finds the TFS server to which the solution is bound is marked as offline, then VS will mark the solution as being offline

    In this scenario, a message about the solution being opened offline will appear in the Output window, but no messagebox will appear.

 

NOTES

  • Offline detection is done ONLY during solution open.  Failures to connect to the server during other version control operations within VS do not affect the offline state of the solution or server.
     
  • The offline state for the solution is stored in the solution's local .suo file.
  • When the server is marked offline, we also turn off the server's "AutoReconnect" setting.
  • The server's offline state is stored in a registry value named Offline, and the AutoReconnect state is stored in in a value named AutoReconnect.  Both of these live under the key:
    HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\TeamFoundation\Servers\<tfs server name>
  • A solution remains offline until it is explicitly taken online.
  • A TFS server remains marked offline until an offline solution bound to that server is taken online.
  • Opening a solution that was previously marked offline while its server is still marked offline opens the solution without any messageboxes appearing.  We will present a message in the Output window indicating the solution is still offline.
  • Opening a solution that was previously marked offline when its server is marked online presents the user with a messagebox asking if the user wishes to take the solution online.