Cómo tener diferentes dependencias del proyecto para cada configuración del proyecto?

StackOverflow https://stackoverflow.com/questions/1519060

  •  19-09-2019
  •  | 
  •  

Pregunta

Me gustaría tener diferentes dependencias del proyecto dependiendo de qué configuración de proyecto que estoy construyendo actualmente.

Por ejemplo, yo no quiero para construir y enlazar SomeTestLib.vcproj en la configuración de lanzamiento, pero me gustaría construir y enlazar con él en la depuración.

Una solución, que funciona sorta, es el uso de macros de compilación condicional:

#ifdef DEBUG  
#pragma comment( lib, "SomeTestLib" )  
#endif

Sin embargo, en este caso, el depurador e IntelliSense no funcionan para SomeTestLib.
¿Hay un .sln o piratear .vcproj que podría utilizar?
Gracias.

¿Fue útil?

Solución

Después de buscar en Google por día, por fin di por vencido en la búsqueda de una solución a este problema y sopló un desarrollador VS, que me dio la solución para este problema (de hecho, he intentado un bajillion cosas diferentes en mi propia para encontrar esto) .

Al parecer, el IDE no es lo suficientemente inteligente como para saber que has desactivado edificio para una biblioteca particular bajo una configuración dada y para no añadir la salida de ese proyecto a la línea de comandos del vinculador para proyectos que dependen de ella. Estoy seguro de que son conscientes de ello.

Sin embargo, ya que solo está pegando la línea de salida del proyecto de biblioteca en la línea de comandos del proyecto depende, el establecimiento de la línea de salida a "" resultará en nada que se añade a la línea de comandos del vinculador en proyectos dependientes!

Con suerte, este problema se solucionará en Visual Studio en el futuro. Sigo siendo optimista, porque es mi IDE favorito, y siempre estoy impresionado por las características que soporta. Sin embargo, algunos de los temas de ayuda VS que he visto dicen que este error es "de diseño", por lo que tal vez no lo arreglará. Parece bastante fácil de hacer, sin embargo.

De todas formas, para resumir:

  • Haga clic en su proyecto de biblioteca en el Explorador de soluciones y haga clic en "Propiedades".
  • Cambiar a la pareja "/ Plataforma de configuración" de que su proyecto de biblioteca no construye para.
  • Seleccione "Propiedades de configuración -> Bibliotecario -> General".
  • En "Archivo de salida", escribe "" (que es parens abiertas, espacio, cerca parens).
  • Haga clic en OK.

Tenga en cuenta que esta solución le dará errores si se construye o limpiar el proyecto de biblioteca discapacitados. Si usted acaba de crear su solución, esta se omitirá en configuraciones con discapacidad, por lo que no se producirán errores.

Espero que esto ayude!

Daniel

Otros consejos

Es posible apagar el / Enlace dependencias de bibliotecas propiedad del vinculador / general en el proyecto dependiente y poner la biblioteca en las entradas de engarce en las configuraciones pertinentes.

Esto hace que el proyecto hace referencia a menos útil, pero es factible.

Establecer el tipo de configuración de utilidad en lugar de aplicación / biblioteca en las propiedades del proyecto -> General ..

En el estudio visual, cada configuración de generación mantiene su propia lista de propiedades para su proyecto. Sólo tiene que añadir su lib a cualquiera que construir configuración que desee. Eso sí, no agregar a "todas las configuraciones"

Haga clic derecho en su solución y seleccione propiedades. página de propiedades solución se mostrará ..

En la página derecha seleccione Configuración Configuración >>> Propiedades

Aquí puede seleccionar la configuración de generación de depuración, liberación y todo tipo de construcción marcando la casilla etiquetada como Generar.

En el proyecto principal, vaya a Propiedades de configuración -> Enlazador -> Entrada, en la sección titulada "Ignorar biblioteca específica" añadir el lib desea eignored, por ejemplo .: Lib. Hacer esto de nuevo por la otra configuración, excepto ignorar una lib diferente / DLL.

Por último, si usted no desea que cada proyecto de construcción para ambas configuraciones, haga clic derecho en la Solución -> Dependencias del proyecto -> [Seleccionar el proyecto principal de nivel superior /] -> Desactive el proyecto que no quieren construido / ignorado .

Este método tiene la ventaja de que todavía se puede construir de forma manual cada proyecto, si lo desea, pero puede cambiar configuraciones y sólo construir / usar la lib / DLL que desea.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top