vscode visual update tutorial studio how español descargar community code visual-studio reference projects-and-solutions

visual-studio - update - visual studio community



¿Qué haces con las referencias cuando descargas un proyecto en Visual Studio? (4)

Cuando descarga un proyecto en Visual Studio, los proyectos de referencia obtienen triángulos de advertencia en su referencia al proyecto descargado. Me he escrito una macro para hacer cosas inteligentes (detectar agregar / quitar proyecto y transformar cualquier referencia de-a la dependencia de archivo / proyecto), pero no puedo creer que no me esté perdiendo algo mucho más simple. ¿Cómo puede ser útil la función de descarga si tengo que modificar las referencias de forma manual (y rompe el paradigma de desarrollo de equipos de ''soluciones personales / proyectos compartidos'').

(Esta pregunta está relacionada con las respuestas a esta pregunta sobre la estructuración de soluciones grandes en Visual Studio; algunas respuestas mencionaron tener soluciones con muchos proyectos, pero ''descargar'' proyectos no utilizados para mejorar el rendimiento).


Para mis proyectos, creo una carpeta de assemblies que los proyectos se copian automáticamente desde una ubicación establecida a la que otros proyectos copian construcciones.

Post-construcción para el proyecto de ensamblaje referenciado:

if not exist "C:/builds/Project1" md "C:/builds/Project1/" copy "$(TargetDir)$(TargetName).*" "C:/builds/Project1/"

Preconstrucción para proyectos de referencia:

si existe "c: / builds / Project1 /" copia "c: / builds / Project1 *. *" "ensamblados $ (ProjectDir)"

El archivo de proyecto apunta a su subcarpeta de assemblies para referencias, por lo que incluso si los proyectos fuente se descargan de la solución, los ensamblados construidos por última vez se usarán sin los problemas de rendimiento de tener todo el proyecto en memoria mientras se desarrolla.


¿Cuáles son las ventajas de tener proyectos en la misma solución si usa referencias de archivos?

Si su app.exe usa utils.dll y cambia el código para utils.dll , entonces si está en la misma solución VS notará la dependencia y volverá a compilar ambos. Si no está en la solución, tendrá que saltar, recompilar utils.dll separado, luego volver a app.exe y volver a compilar app.exe .

Esto se vuelve más o menos importante dependiendo de cuántos otros dll estén haciendo referencia a su ejecutable, y con qué frecuencia cambian (en los entornos de equipo, el cambio de dll compartido a menudo en mi experiencia).
También existe el efecto secundario de que si tienes 100 proyectos en VS, tomará mucho tiempo procesarlos todos solo para descubrir si es necesario volver a compilarlos o no.


La descarga de proyectos debe ser una acción temporal para que pueda editar el archivo del proyecto real como XML (texto). Si desea eliminar por completo un proyecto de su solución, debe usar la opción de menú "Eliminar", que se encargará de eliminar cualquier referencia a ese proyecto.

Una ventaja del uso de referencias de proyectos es que le permite depurar fácilmente a través del código. También asegura automáticamente que está utilizando la compilación de configuración correcta (es decir, si está construyendo en el modo "Depurar" utilizará la versión de depuración del ensamblado). Habiendo dicho eso, pierdes algo de la determinación sobre qué versión / compilación del proyecto dependiente elegirás: las referencias del proyecto significan que siempre usas la última.

Sí, para que Visual Studio determine las dependencias de compilación, debe poder ver y compilar todos los proyectos, lo que significaría referencias de proyecto.


Acabo de pasar un momento eureka leyendo el documento de MSDN sobre soluciones y proyectos de estructuración.

Lo que no había notado es que en una solución multiproyecto, el menú contextual en el Explorador de soluciones propone una ventana emergente de Dependencias del proyecto. Aquí puede definir las dependencias del proyecto manualmente, si no las ha definido por referencias de proyectos entre proyectos.

Vea aquí (enlace de MSDN, por lo que se autodestruirá después de algunas semanas)