Administrar referencias de proyecto.

Antes de escribir código que trabaje con un componente externo, el proyecto debe contener en primer lugar una referencia a dicho componente.Puede hacer referencia a los siguientes tipos de componentes:

  • Referencias de aplicaciones de la Tienda Windows

  • Bibliotecas de clases o ensamblados de .NET Framework

  • Componentes COM

  • Otros ensamblados o bibliotecas de clases de proyectos de la misma solución

  • Servicios Web XML

Para obtener más información acerca de las referencias de servicios Web XML, vea Web References.

Referencias de aplicaciones de la Tienda Windows

Referencias del proyecto

Los proyectos de la Tienda Windows que tienen como destino Windows 8 no pueden depender de los binarios o los proyectos de la Tienda Windows que tienen como destino Windows 8,1.

Si un proyecto de su aplicación tiene como destino Windows 8,1 y la aplicación consta de un proyecto de la Tienda Windows de C++, necesitará seguir los pasos siguientes:

  1. Redefina el destino de todos los proyectos de la aplicación a Windows 8,1.Haga clic con el botón secundario en cada proyecto de la aplicación y seleccione el comando Redestinar a Windows 8.1 y haga clic en Aceptar en el cuadro Revisar cambios de proyecto y solución.

  2. Haga clic con el botón secundario en todos los proyectos de Visual Basic, Visual C# y JavaScript que dependen de un proyecto de C++ de la Tienda Windows, elija Agregar referencia, vaya a la pestaña Windows y seleccione la subpestaña Extensiones. A continuación, desactive la opción Paquete en tiempo de ejecución v11.0 de Microsoft Visual C++, active la opción Paquete en tiempo de ejecución v12.0 de Microsoft Visual C++ y haga clic en Aceptar.

Los proyectos de la Tienda Windows de Visual Basic, C# y JavaScript que tienen como destino Windows 8,1 pueden hacer referencia a la Tienda de Windows de Visual Basic y C# que tienen como destino Windows 8, siempre que estos proyectos no usen las API que están en desuso en Windows 8,1.Vea Migrar aplicaciones de Windows 8 a Windows 8.1 Preview para comprobar si los proyecto de la Tienda Windows destinados a Windows 8 seguirán comportándose de la manera esperada cuando se haga referencia a ellos desde un proyecto de Windows 8,1.

Referencias de SDK de extensión

Los proyectos de la Tienda Windows de Visual Basic,C#, C++ y JavaScript que tienen como destino Windows 8,1 no pueden hacer referencia a los SDK de extensión que no dependen del paquete Microsoft Visual C++ Runtime v11.0, pues este causará problemas en tiempo de ejecución.Para averiguar si un SDK de extensión depende del paquete Microsoft Visual C++ Runtime v11.0 creando un nuevo proyecto de la Tienda Windows de C#, haga clic con el botón secundario en el proyecto y elija Agregar referencia, vaya a la pestaña Ventanas, la subpestaña Extensiones, seleccione el SDK de extensión y vea si el panel derecho del Administrador de referencias muestra Microsoft.VCLibs, versión = 11,0 como dependencia.

Los proyectos de la Tienda Windows de Visual Basic, C# y JavaScript que tienen como destino Windows 8,1 pueden hacer referencia a los SDK de extensión que no dependen del paquete Microsoft Visual C++ Runtime v11.0, siempre que estos SDK de extensión no utilicen las API que están en desuso en Windows 8,1.Compruebe el sitio del proveedor de SDK de extensión para comprobar si los proyectos de la Tienda Windows destinados a Windows 8,1 pueden hacer referencia a él.

Si determina que el SDK de la extensión al que hace referencia su aplicación no es compatible, deberá realizar los pasos siguientes:

  1. Busque el nombre del proyecto que está provocando el error.La plataforma a la que está destinada su proyecto se anota entre junto al nombre del proyecto.Por ejemplo, MyProjectName (Windows 8.1) significa que el proyecto MyProjectName tiene como destino la versión de plataforma Windows 8,1.

  2. Vaya al sitio del proveedor que posee la extensión SDK no compatible e instale la versión del SDK de la extensión con las dependencias compatibles con la versión de la plataforma a la que el proyecto está destinado.

    [!NOTA]

    Una manera de averiguar si un SDK de extensión tiene dependencias en los otros SDK de extensión es reiniciar Visual Studio, crear un nuevo proyecto de la Tienda Windows de C#, hacer clic con el botón secundario en el proyecto y elegir Agregar referencia, ir a la pestaña Windows, ir a la subpestaña Extensiones, seleccionar el SDK de extensión y consultar el panel derecho en el Administrador de referencias.Si tiene dependencias, aparecerán ahí.

    Nota importanteImportante

    Si el proyecto está destinado Windows 8,1 y el SDK de extensión instalada en el paso anterior tiene una dependencia en el paquete Microsoft Visual C++ Runtime, la versión del paquete Microsoft Visual C++ Runtime que es compatible con Windows 8.1 es v12.0 y se instala con Visual Studio 2013.

  3. Si la extensión SDK instalada en el paso anterior tiene dependencias de otros SDK de extensión, vaya a los sitios de los proveedores que poseen dependencias e instale las versiones de estas dependencias compatibles con la versión de plataforma de destino de su proyecto.

  4. Reinicie Visual Studio y abra la aplicación.

  5. Haga clic con el botón secundario en el proyecto que produjo el error y elija Agregar referencia (en los proyectos de Visual Basic, C# o JavaScript) o Referencias (en los proyectos de C++).En los proyectos de C++, haga clic en el botón Agregar nueva referencia.

  6. Haga clic en la pestaña Ventanas y, a continuación, en la pestaña Extensiones. A continuación, desactive las casillas de los SDK de extensión antiguos y active las casillas de los SDK de la nueva extensión.Haga clic en Aceptar.

Agregar una referencia en tiempo de diseño

Para agregar una o varias referencias en tiempo de diseño, use el cuadro Administrador de referencias o el cuadro Agregar referencia, en función del tipo de proyecto que está compilando.Utilice el cuadro de diálogo Administrador de referencias para todas las aplicaciones de Tienda Windows y la mayoría de los otros tipos de proyectos.Para obtener más información, vea Cómo: Agregar o quitar referencias usando el Administrador de referencias.Existen varios proyectos compatibles con el cuadro de diálogo Agregar referencia.Para obtener más información, vea Cómo: Agregar o quitar referencias utilizando el cuadro de diálogo Agregar referencia.

Puede usar el cuadro de diálogo Agregar referencia para examinar ensamblados que no se muestren.No se pueden agregar referencias de Caché global de ensamblados (GAC), ya que forma parte del entorno del tiempo de ejecución.

Cuando haga referencia a un ensamblado de un proyecto, Visual Studio buscará el ensamblado en las ubicaciones siguientes:

  • Directorio del proyecto actual. (Puede buscar estos ensamblados utilizando la ficha Examinar.)

  • Otros directorios del proyecto de la misma solución. (Puede buscar estos ensamblados en la ficha Proyectos.)

Para obtener más información acerca de cómo agregar referencias en tiempo de diseño, consulte Cómo: Agregar o quitar referencias utilizando el cuadro de diálogo Agregar referencia.

[!NOTA]

Todos los proyectos contienen una referencia implícita a mscorlib.Los proyectos de Visual Basic contienen una referencia implícita a Microsoft.VisualBasic.

Todos los proyectos en Visual Studio contienen una referencia implícita a System.Core, aun cuando System.Core se quite de la lista de referencias.

Referencias a componentes compartidos en tiempo de ejecución

En tiempo de ejecución, los componentes deben estar en la ruta de acceso de resultados del proyecto o en Caché global de ensamblados (GAC).Si el proyecto contiene una referencia a un objeto que no se encuentra en ninguna de estas ubicaciones, deberá copiar la referencia a la ruta de acceso de resultados del proyecto cuando compile el proyectoLa propiedad CopyLocal indica si es necesario realizar esta copia.Si el valor es True, la referencia se copiará en el directorio de proyecto al compilar el proyecto.Si el valor es False, no se copia.

Si se implementa una aplicación que contenga una referencia a un componente personalizado registrado en la GAC, el componente no se implementará con la aplicación, independientemente de la configuración de CopyLocal.En versiones anteriores de Visual Studio, podía establecer la propiedad CopyLocal en una referencia para garantizar que el ensamblado se había implementado.Ahora, debe agregar manualmente el ensamblado a la carpeta \Bin.De esta forma se controla todo el código personalizado, reduciendo el riesgo de publicar código personalizado con el que no está familiarizado.

De forma predeterminada, la propiedad CopyLocal se establece en False si el ensamblado o el componente está en la caché global de ensamblados o es un componente de marco de trabajo.De lo contrario, el valor se establece en True.Las referencias entre proyectos siempre se establecen en True.

Hacer referencia a un proyecto o ensamblado destinado a otra versión de .NET Framework

Puede crear aplicaciones que hagan referencia a proyectos o ensamblados destinados a otra versión de .NET Framework.Por ejemplo, podría crear una aplicación destinada a .NET Framework 4 Client Profile que haga referencia a un ensamblado destinado a .NET Framework 2,0.Si crea un proyecto destinado a una versión anterior de .NET Framework, no puede establecer una referencia en ese proyecto a un proyecto o ensamblado destinado a .NET Framework 4 Client Profile o .NET Framework 4.

Para obtener más información, vea Elegir versión de destino o perfil de .NET Framework específico.

Referencias entre proyectos y referencias a archivos

Las referencias a archivos son referencias directas a ensamblados; se crean en la ficha Examinar del cuadro de diálogo Agregar referencia.Las referencias entre proyectos son referencias a proyectos que contienen ensamblados; se crean en la ficha Proyecto del cuadro de diálogo Agregar referencia.

La ventaja de una referencia entre proyectos es que crea una dependencia entre los proyectos del sistema de compilación.Por consiguiente, el proyecto dependiente se compilará si ha cambiado desde la última vez que se compiló el proyecto que hace referencia a él.Una referencia de archivo no crea una dependencia de compilación, por lo que es posible de generar el proyecto que hace referencia sin generar el proyecto dependiente, de manera que la referencia se puede quedar obsoleta. (Es decir, el proyecto podría hacer referencia a una versión del proyecto compilada anteriormente.) Esto puede hacer que en el directorio bin se requieran varias versiones de un mismo archivo DLL, lo cual no es posible.Si se produce este conflicto, verá un mensaje como Advertencia: la dependencia 'archivo' del proyecto 'proyecto' no se puede copiar en el directorio de ejecución porque reemplazaría la referencia 'archivo'.

No se deben agregar referencias de archivos a resultados de otro proyecto de la misma solución, ya que puede provocar errores de compilación.En su lugar, use la ficha Proyectos del cuadro de diálogo Agregar referencia para crear referencias de proyecto a proyecto en la misma solución.Esto facilita el trabajo en equipo, permitiendo una mejor administración de las bibliotecas de clases creadas en los proyectos.Para obtener más información, vea Solucionar problemas de referencias rotas y Cómo: Crear y quitar dependencias del proyecto.

[!NOTA]

Se crea una referencia de archivo en lugar de una referencia de proyecto si la versión de destino de .NET Framework de un proyecto es la 4.5 y la versión de .NET Framework de destino del otro proyecto es 2, 3, 3.5 o 4.0.

Referencias web

También puede agregar referencias web en el cuadro de diálogo Agregar referencia Web.Para obtener más información, vea How to: Add and Remove Web References.

Vea también

Tareas

Solucionar problemas de referencias rotas

Cómo: Agregar o quitar referencias utilizando el cuadro de diálogo Agregar referencia

Conceptos

Cómo: Agregar o quitar referencias usando el Administrador de referencias

Otros recursos

Referencing Namespaces and Components

Managing References

Programar con ensamblados