2010-03-17 18 views
7

En las propiedades del proyecto de Visual Studio 2008, pestaña Aplicación, puedo establecer el Tipo de salida en Aplicación de Windows, Aplicación de consola o Biblioteca de clases. Tengo un proyecto que deseo construir como una herramienta independiente (aplicación de consola) y estar disponible para otras herramientas en las que estoy trabajando como biblioteca de clases.Creación de proyecto de Visual Studio como un ejecutable Y una DLL

La interfaz gráfica de usuario VS solo me permite elegir una u otra, y construir el proyecto dos veces todo el tiempo es inconveniente.

¿Cómo puedo configurarlo para generar ambos tipos de salida en un único trabajo de compilación? ¿Escribo algún archivo personalizado de MSBuild .targets o qué?

+0

Problema relacionado la prioridad más baja es probar mi herramienta; si utilizo 'Create Unit Tests' de Visual Studio para generar un proyecto de prueba, resultará * levemente * diferente dependiendo de si el proyecto principal se configuró en Console App o Class Lib en ese momento, de modo que se vuelve a cambiar el proj principal & forth alternativamente romperá la construcción del proyecto de prueba. Cojo. –

Respuesta

18

Si no me equivoco, puede utilizar el EXE como biblioteca de clases.
Solo agregue una referencia al mismo, en los otros proyectos. A .NET EXE es solo un ensamblaje.

3

Cree dos proyectos separados, uno para su aplicación de consola y otro para la biblioteca de clases. Establezca el tipo de Salida apropiado para cada uno.

No olvide agregar una referencia a su biblioteca de clase al proyecto de su aplicación de consola.

3

No se puede compilar tanto para un exe como para un dll. Si un conjunto se trata como un exe o un dll se determina mediante un indicador de un solo bit en el encabezado ejecutable portátil del archivo (consulte http://msdn.microsoft.com/en-us/magazine/cc301805.aspx para obtener más información). Esta bandera no puede tener ambos valores.

Lo que puede hacer para satisfacer su necesidad es agregar una referencia a su exe. No puede hacer esto en algunas versiones de Visual Studio (2005 y siguientes) ya que la interfaz de usuario no le permitirá, pero puede editar manualmente el archivo del proyecto para agregar la referencia. Las versiones posteriores de Visual Studio le permiten agregar referencias a archivos exe utilizando la interfaz de usuario.

+1

Ese indicador de bit significa que un único * archivo * no puede ser tanto un archivo DLL como un .exe, eso es obvio. ¿Pero una construcción .NET no puede tener más de un objetivo de compilación? Eso suena sospechoso para mí, y si es cierto, sería una gran limitación de MSBuild (así que tal vez necesitaría aprender NAnt ...) –

4

Puede construir el archivo dll de forma predeterminada y crear otro destino dependiente que sea simplemente una aplicación de consola contenedora que utiliza el dll.

3

Creo que la solución más simple es construir como un EXE y luego tener una acción de compilación posterior que copie el EXE en una DLL. No hay una diferencia real entre los dos en .Net.

Cuestiones relacionadas