2009-03-29 14 views
33

Al agregar un control de usuario o una referencia de proyecto a un proyecto VS 2008 C#, puedo agregar solo una configuración del ensamblaje. Es posible agregar configuraciones separadas, dependiendo de la configuración del proyecto del contenedor.C#/VS2008: Agregue referencias separadas de depuración/liberación a un proyecto

E.g. Estoy desarrollando un control de usuario, y estoy trabajando en una aplicación de muestra. Quiero agregar el control de usuario para que una compilación de depuración del ejemplo use la compilación de depuración del control de usuario y la compilación de lanzamiento de la compilación de lanzamiento del control de usuario.

¿Alguna sugerencia?

Respuesta

25

Puede hacerlo editando el archivo csproj; agregue un atributo "Condición" a la referencia.

<Reference Include="Foo" Condition="'$(Configuration)'=='Debug'"/> 
<Reference Include="Bar" Condition="'$(Configuration)'=='Release'"/> 

Sin embargo, me preocuparía lo que esto significa para las pruebas unitarias.

+0

pregunta es acerca de usar el mismo 'UserControl', de esta manera no podemos agregar referencia dos veces y Visual Studio no le permite a @Salvatore Previti responder la mejor – CallMeLaNN

5

Si bien la sugerencia de @Marc Gravell funcionará, ¿hay algún motivo por el que no desee que ambos proyectos estén en la misma solución? Si están en la misma solución, puede agregar una Referencia de proyecto al hacer referencia al proyecto de Control de usuario para el proyecto de la aplicación de muestra. Cuando se utiliza una referencia de proyecto, Visual Studio agregará automáticamente la versión de depuración para una compilación de depuración y la versión de lanzamiento para la versión de lanzamiento.

+1

Si el proyecto al que se hace referencia está bajo control de fuente por separado (tal vez es un proyecto de biblioteca de propósito general) entonces pueden surgir problemas al intentar agregar el proyecto de referencia al control de origen. –

31
<Reference Include="MyLibrary"> 
    <HintPath>..\$(Configuration)\MyLibrary.dll</HintPath> 
</Reference> 

Esta agregar una referencia ".. \ Debug \ MyLibrary.dll" si se compila en modo de depuración o .. \ Release \ MyLibrary.dll" si se compila en modo de lanzamiento.

+0

Gran respuesta + usa la ruta relativa ya que el dll podría estar en la carpeta justo afuera de la solución. – CallMeLaNN

+0

Y Visual S tudio (VS2010 en mi caso) parece ser educado y no altera tales ediciones manuales cuando una modifica posteriormente el archivo de proyecto desde el IDE. Como prueba agregué una nueva clase, todo funcionó bien. –

Cuestiones relacionadas