Proyecto de Visual Studio vs Solución


Siendo nuevo en VS, ¿cómo puedo pensar de estos dos conceptos, cuál es la diferencia?

Author: Grant Winney, 2010-03-05

10 answers

Una solución es un contenedor para proyectos, y rastrea las dependencias entre proyectos.

 57
Author: pzr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-05 19:08:41

Encuentro alguna información que falta en las otras respuestas (al menos para las personas que vienen de otros IDE como, por ejemplo, Eclipse) . Decir que una solución es un contenedor para proyectos es solo una parte de la cosa. La característica conceptual de un proyecto VS (lo que determina su 'granularidad') es que un proyecto produce una salida: típicamente un ejecutable o una biblioteca (dll). Por lo tanto, si va a codificar tres ejecutables que usan código relacionado, creará una solución y al menos tres proyectos - probablemente más.

 107
Author: leonbloy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-30 20:16:14

Sólo para llegar a una metáfora..

Una solución es como una casa, un proyecto como una habitación. Cada habitación proporciona una pieza de funcionalidad, mientras que la casa, un contenedor de habitaciones, proporciona los medios para vincular las habitaciones y organizarlas adecuadamente.

Un poco cursi pero lo inventé sobre la marcha, así que ten paciencia conmigo:)

 32
Author: Cody C,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-05 19:11:46

No ayuda que Visual Studio parezca hacer las cosas más confusas. "Nuevo proyecto" en realidad crea una nueva SOLUCIÓN que contiene un proyecto. "Open Project" realmente abre una solución que contiene uno (o muchos) proyectos. (El menú archivo dice "Abrir Proyecto / Solución", pero realmente está abriendo soluciones. No hay un "Proyecto Cerrado" solo una "Solución cerrada" que sea precisa.

Por lo tanto, en VS siempre está trabajando dentro de una solución. Muchas soluciones contienen solo un proyecto y los desarrolladores más nuevos son es probable que piensen en ellos como la misma cosa. Sin embargo, puede agregar otros proyectos a una solución.

 19
Author: Chryses,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-17 15:50:16

Una Solución puede tener muchos Proyectos.

La Solución también puede manejar la gestión de las dependencias entre sus diferentes Proyectos...asegurarse de que cada Proyecto se construye en el orden adecuado para que la Solución final funcione.

 5
Author: Justin Niessner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-05 19:08:24

Un proyecto contiene archivos ejecutables y de biblioteca que forman una aplicación o componente de una aplicación.

Una solución es un marcador de posición para proyectos relacionados lógicamente que componen una aplicación. Por ejemplo, podría tener proyectos separados para la interfaz gráfica de usuario de su aplicación, la capa de acceso a la base de datos, etc. Los proyectos serían divisiones específicas para la funcionalidad de su programa, y la solución sería el paraguas unificando todos ellos bajo una sola aplicación.

 3
Author: David,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-28 20:11:51

En caso de que alguien decida desplazarse hasta aquí...Pensé que el MS docs hizo un buen trabajo en la descripción de las diferencias. He copiado pegado el bit relevante aquí:

Cuando crea una aplicación, una aplicación, un sitio web, una Aplicación Web, un script, un complemento, etc. en Visual Studio, comienza con un proyecto. En un sentido lógico, un proyecto contiene todos los archivos de código fuente, iconos, imágenes, archivos de datos y cualquier otra cosa que se compilará en un programa ejecutable o sitio web, o bien es necesario para realizar la compilación. Un proyecto también contiene todas las configuraciones del compilador y otros archivos de configuración que podrían ser necesarios para varios servicios o componentes con los que el programa se comunicará. Nota

No tienes que usar soluciones o proyectos si no quieres. Simplemente puede abrir los archivos en Visual Studio y comenzar a editar su código.

En un sentido literal, un proyecto es un archivo XML (.vbproj, .csproj, *.vcxproj) que define una carpeta virtual jerarquía junto con rutas a todos los elementos que "contiene" y todas las configuraciones de compilación. En Visual Studio, el explorador de soluciones utiliza el archivo de proyecto para mostrar el contenido y la configuración del proyecto. Cuando compila su proyecto, el motor de MSBuild consume el archivo de proyecto para crear el ejecutable. También puede personalizar los proyectos para producir otros tipos de salida.

Un proyecto está contenido, en un sentido lógico y en el sistema de archivos, dentro de una solución, que puede contener uno o más proyectos, junto con la información de compilación, la configuración de la ventana de Visual Studio y cualquier archivo diverso que no esté asociado con ningún proyecto. En un sentido literal, la solución es un archivo de texto con su propio formato único; generalmente no está destinado a ser editado a mano.

Una solución tiene un *asociado.archivo suo que almacena la configuración, preferencias e información de configuración de cada usuario que ha trabajado en el proyecto.

 3
Author: jrahhali,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-01 23:09:27

Las soluciones son contenedores para proyectos: también puede usarlas para organizar elementos que se utilizan en diferentes proyectos relacionados (DLL compartidos y similares).

 2
Author: Oded,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-05 19:09:29

Las soluciones son contenedores utilizados por Visual Studio para organizar uno o más proyectos relacionados. Cuando abre una solución en Visual Studio, cargará automáticamente todos los proyectos que contiene.

Cuando crea un nuevo proyecto en Visual Studio, crea automáticamente una solución para alojar el proyecto si no hay una solución ya abierta.

Puede establecer dependencias de proyectos en otros proyectos de la solución. El proyecto dependiente se construye después de la proyecto que depende de se construye.

Para más detalles consulte - https://docs.microsoft.com/en-us/visualstudio/ide/quickstart-projects-solutions

Si usted es de un fondo de Eclipse, probablemente iría a construir la ruta de un proyecto y agregar una dependencia en otro proyecto o agregar un jar externo. En VS puede hacer eso en un solo contenedor llamado solución donde todos los proyectos relacionados se agrupan juntos.

Eg. Digamos que estás construido y android e iOS aplicación en xamrin, habría un código común y recursos que podrían ir en un proyecto separado y luego sus proyectos de Android e iOS pueden depender de este proyecto de código común. También podría tener proyectos para probar estos proyectos, etc.

 0
Author: Aniket Thakur,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-21 09:21:46

Una solución es un archivo de texto legible cuya extensión es .sln y que tiene un contenido estructurado que describe los proyectos que contiene. Un proyecto es un archivo de texto formateado XML cuya extensión es .vcxproj y que tiene un contenido estructurado de acuerdo con su esquema XML, y cuyo propósito principal es contener la lista de nombres de archivos de códigos fuente y sus dependencias o referencias a los códigos fuente de otros proyectos también.

 0
Author: ifelsemonkey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-14 19:12:48