Si está desarrollando software para varias plataformas o software distribuido para sistemas remotos (tanto si utiliza una colección homogénea o heterogénea de sistemas), puede utilizar el soporte de varios contextos proporcionado por proyectos C/C++ locales/remotos para acceder a los proyectos entre varias máquinas.
Un contexto es esencialmente una asociación con nombre entre un directorio ubicado en algún host y una recopilación de datos asociados a él que el IDE utilizará al interactuar con ese contexto. Normalmente, cada proyecto C/C++ Local/Remoto está asociado a un contexto para cada máquina a la que desea acceder. Un contexto señala el directorio de una máquina de destino en la que se almacenan los archivos de origen del proyecto. Estos contextos pueden dirigirse a máquinas remotas o a la máquina local. La utilización del contexto local facilita el desarrollo local de la aplicación mientras está en línea o desconectado. Consulte Trabajar con contextos remotos y Trabajar con contextos locales para obtener más información sobre las diferencias que hay al trabajar con estos diferentes tipos de contextos.
Para utilizar completamente el soporte de varios contextos, el proyecto debe ser un proyecto sincronizado. Un proyecto sincronizado es un proyecto que tiene un contexto local y uno o varios contextos remotos con los que está sincronizado. Inicialmente, tras la creación del proyecto tiene un contexto remoto con el que está sincronizado pero puede añadir contextos adicionales en cualquier momento a través de la vista Contextos remotos. Al seleccionar el proyecto se mostrará la lista de contextos asociados actualmente al proyecto y podrá utilizar la vista para añadir contextos adicionales. Con un proyecto sincronizado, se mantiene una copia de los archivos en la estación de trabajo local y en cada máquina a la que el proyecto está conectado. Cuando edita un archivo está editando la copia local. Cuando guarda el archivo, los cambios se transmiten a una o varias de las máquinas remotas (en función de los valores de sincronización de la vista Reconciliador remoto) y las copias remotas se actualizan. Si hace un cambio directamente en una copia remota, el Reconciliador remoto detectará ese cambio y podrá volver a sincronizarlo con la copia local (si cambia las copias locales y remotas, se pueden fusionar los conflictos mediante una herramienta de fusión). Normalmente sólo se mantienen sincronizados los archivos de texto, los archivos generados a partir de una compilación como por ejemplo los archivos de objeto y los ejecutables se conservan solo en la máquina en la que se compilaron y no se vuelven a copiar en el cliente. La copia local de los archivos es esencialmente la copia maestra. Si se desconecta, puede seguir editando las copias locales y cuando se vuelve a conectar, los cambios se transmiten a las copias remotas. Los sistemas de control de versiones integrados como por ejemplo Rational Team Concert, trabajan con la copia local. Si utiliza la Modalidad fuera de línea, se desconectarán todas las conexiones y todos los proyectos pasarán a utilizar un contexto local para facilitar el desarrollo local mientras está fuera de línea.
Si el proyecto no es ya un proyecto sincronizado pero desea utilizar el soporte de varios contextos, puede convertirlo en un proyecto sincronizado seleccionando "Asociar ubicación local" desde el menú de contexto del proyecto. Esto invocará un asistente que permitirá asociar un contexto primario inicial con el proyecto.
Cuando un proyecto tiene varios contextos remotos, uno de ellos debe ser el contexto primario. Cuando realiza acciones en el IDE, como por ejemplo el lanzamiento de una compilación, el mandato se enviará al contexto primario. Puede conmutar el contexto primario en cualquier momento. El Reconciliador remoto solo sincroniza con el contexto primario pero recuerda todos los archivos que se han actualizado por lo que cuando pasa a un contexto primario nuevo, transmitirá automáticamente todos los cambios desde la última vez que el contexto se estableció como el contexto primario. Este comportamiento le permite estar desconectado de los contextos no primarios. No querrá estar conectado a todos los contextos remotos todo el tiempo.
Al pasar a un contexto por primera vez (es decir, hacerlo su contexto primario), se mostrará un asistente que permite configurar cómo desea interactuar con ese proyecto.

En función del hardware y la plataforma de sistema operativo destino del contexto, dispondrá de opciones como por ejemplo qué cadena de herramientas de compilador desea utilizar en ese contexto para la compilación y el análisis, así como algunas opciones de indexación. El asistente configurará adecuadamente una configuración de servicio para el contexto para indicar al IDE que obtenga los diversos servicios (como por ejemplo la compilación y la indexación) de esa máquina y también creará una configuración de compilación correspondiente al contexto de modo que pueda configurar el proyecto para que se compile adecuadamente para ese contexto, con diferentes variables de entorno, mandatos de compilación/destinos de compilación y otras informaciones. Al pasar de uno a otro de los diversos contextos, el IDE recordará las configuraciones de compilación y servicio que estaba utilizando en el momento en que pasó de un contexto dado a otro diferente. Posteriormente, cuando vuelva a ese contextos, se volverán a utilizar esas mismas configuraciones de compilación y servicio por lo que solo verá el asistente la primera vez que pase a un contexto nuevo que no haya visitado anteriormente.
Mientras está trabajando con un contexto primario dado puede editar, navegar, compilar, depurar, ejecutar las herramientas de cobertura de código y realizar el análisis de rendimiento de la aplicación. Sin embargo, hay algunas limitaciones que dependen del hardware y el sistema operativo de la plataforma destino del contexto y algunas herramientas pueden comportarse de forma diferente o no estar disponibles para ciertos contextos. Consulte Trabajar con contextos remotos y Trabajar con contextos locales para obtener más información sobre las diferencias que se dan al trabajar con estos diferentes tipos de contextos.