2010-11-05 15 views
8

Antes de preguntar, leo this y this hilos. No hay ayuda allí.Hacer referencia a diferentes conjuntos en diferentes configuraciones

Estoy usando Visual Studio 2003 (esto es obligatorio por mi empleador) pero supongo que las respuestas a las versiones posteriores de VS también pueden ser útiles.

Entonces, imagine que tengo dos proyectos .Net: A - que es una biblioteca de clases y B - que es una aplicación. En BI, haga clic en Agregar referencia, vaya a la pestaña Proyectos y elija A. En este escenario, la versión de depuración de B hará referencia a la versión de depuración de A, y la versión de lanzamiento de B utilizará la versión de lanzamiento de A. Ahora Imagine que, en lugar del proyecto AI, solo tiene dos ensamblajes: aD.dll y a.dll. No tengo ningún proyecto que cree estos. Lo que quiero hacer es hacer cumplir esa versión de depuración de referencia B aD.dll, y la versión de lanzamiento de referencia B a.dll
Pregunta 1: ¿Cómo hago esto?

Cuando quiero hacer referencia a algunos DLL, voy a Agregar referencia ->Navegar y navega en mi DLL. Pero necesito especificar no la ruta completa, sino la ruta relativa.
Pregunta 2: ¿Cómo hago esto?

Esta es una situación de emergencia, gracias de antemano :)

Respuesta

14

No se puede hacer esto a través del IDE, pero puede hacerlo por la piratería el archivo .csproj a mano:

Si 've ya tiene una referencia a, por ejemplo, a.dll:

<Reference Include="a">...</Reference> 

... entonces probar un par de condiciones de la siguiente manera:

<Reference Condition="'$(Configuration)' == 'Release'" Include="a">...</Reference> 
<Reference Condition="'$(Configuration)' == 'Debug'" Include="aD">...</Reference> 

Editar: He aquí una explicación de lo que se puede poner dentro de un elemento <Reference>: http://msdn.microsoft.com/en-us/library/bb629388.aspx

+0

muchas gracias. Y en este caso, ¿puedo especificar la ruta relativa como ** Include = "../../Assemblies/Debug/aD.dll"**? –

+0

El 'Include =' es el nombre de la DLL (sin la extensión), pero puede poner lo que quiera dentro del elemento ''. El IDE ya debería haber proporcionado un ''. –

+0

me salvó un montón de problemas! – Benoittr

Cuestiones relacionadas