¿Visual Studio One Project con varios dlls como salida?

Estoy progtwigndo un proyecto con soporte de complementos. Como muchos de los complementos son relativamente pequeños (solo un archivo fuente / clase) me gustaría tenerlos todos en un solo proyecto en Visual Studio, pero para hacer esto con éxito necesitaría cada fuente-archivo / clase para ser comstackda en su propio archivo dll, ¿es posible usar Visual Studio?

Si esto no es posible con Visual Studio, ¿sería posible utilizar otro sistema de comstackción, mientras se siguen codificando y depurando con Visual Studio?

Actualmente configuré el tipo de salida del proyecto de complementos para la consola, y programé un método main () que comstackrá todos los archivos .cs en el directorio de origen a dlls y los copiará en el directorio apropiado. Luego configuro esa aplicación de consola para que sea el evento posterior a la construcción del proyecto de complementos. Funciona, pero parece un truco muy feo.

Usando Visual Studio 2010.

Puede crear un proyecto para cada complemento y agrupar todos los proyectos en una solución.

Si no desea tener un proyecto por complemento, puede crear una comstackción personalizada con MSBuild utilizando la tarea CSC.

Cómo generar un archivo DLL para cada archivo de complemento

  1. En un proyecto, agrega todos los archivos de complementos
  2. Edite el archivo del proyecto para especificar qué clase generará una biblioteca de complementos:

      true    true     
  3. Agregue un nuevo objective en su archivo de proyecto para generar la biblioteca de complementos

        
  4. Si desea crear la biblioteca de complementos después de cada comstackción, agregue un objective posterior a la comstackción:

       

Solo tiene que crear una Solution luego agregar tantos proyectos como desee.

Puede tener 5 proyectos de Class Library y comstackrlos, generando 5 archivos DLL.

Para ampliar la respuesta anterior de Julien Hoarau, aquí hay una solución que le permite comstackr varios archivos DLL desde un solo proyecto, y tener esos archivos DLL comstackdos a partir de múltiples archivos CS. Simplemente abra su archivo csproj y agréguelo antes de la etiqueta :

     false false false false false        false false false            

Este es mi enfoque: te permite mantener todo organizado en la parte inferior en lugar de extenderlo por todo el archivo del proyecto. Utilizando

 false 

nos permite ocultar los archivos del SolutionExplorer, y tener una lista de archivos definida por separado en lugar de simplemente agregar la etiqueta del complemento a los archivos que queremos. En su solución principal, asegúrese de configurar Build Action en “none” en todos los archivos que está comstackndo en el complemento para que no haya duplicación en el archivo principal del proyecto.

Algunas lecturas más sobre CSC:

https://msdn.microsoft.com/en-us/library/78f4aasd.aspx Edificio de la línea de comandos con csc.exe

https://msdn.microsoft.com/en-us/library/ms379563(v=vs.80).aspx Trabajar con el comstackdor de línea de comandos C # 2.0

https://msdn.microsoft.com/en-us/library/s5c8athz.aspx Tarea Csc

https://msdn.microsoft.com/en-us/library/7szfhaft.aspx Condiciones de MSBuild

Espero que esto sea útil para alguien.

Si desea que cada archivo de código sea su propia DLL, entonces debe crear un nuevo proyecto para cada archivo de código. Pero puede poner múltiples archivos de proyecto (.csproj) en una gran solución.

Si esto no te sirve, entonces siempre puedes comstackr tu proyecto usando la línea de comando. Eso le permitiría personalizar su construcción para satisfacer sus necesidades. Por ejemplo, podría escribir un scrip batch, o un script powershell que comstackría todos sus archivos de código en una DLL separada.