¿El equivalente .NET de bibliotecas estáticas?
Estoy creando una herramienta en código administrado (principalmente C ++ / CLI) en dos versiones, una versión de "usuario normal" y una versión "pro".
El hecho de que el código del núcleo sea idéntico entre las dos versiones me ha causado un pequeño problema, ya que quiero empaquetar la herramienta resultante como un único ensamblado (DLL) y no quiero tener que incluir los archivos .cpp para el sistema común. Código en los proyectos de las dos versiones de las herramientas. Prefiero tener un proyecto para el código común y un proyecto para cada versión de la herramienta y tener cada versión del proyecto de herramientas depende del código común y vincularlo como se desee.
En C ++ no administrado, lo haría colocando el código común en una biblioteca estática y vinculando ambas versiones de la herramienta. Parece que no puedo conseguir que esto funcione en C ++ / CLI. Parece que me veo forzado a construir el código común en un ensamblado de DLL y eso da como resultado más DLL de los que me gustaría.
Entonces, en resumen, no puedo averiguar cómo construir el código común en un proyecto y vincularlo con cada uno de los proyectos finales del producto para producir dos conjuntos DLL únicos que incluyan el código común.
Probablemente estoy haciendo algo mal, pero traté de averiguar cómo hacerlo usando netmodules y lo que sea y simplemente no pude hacer que funcionara. Al final, la única forma de hacerlo funcionar fue decirle al vinculador que vinculara los productos de compilación del conjunto de código común en lugar de los resultados, lo que funciona, pero es un poco difícil de descifrar.
De todos modos, ¿alguien tiene alguna sugerencia sobre cómo DEBERÍA estar resolviendo este problema?
Editado: Supongo que debería haber mencionado el hecho de que los ensamblados generados no son 100% de código administrado, contienen una combinación de código administrado y no administrado tal como es, probablemente, bastante común con los ensamblados producidos con C ++ / CLI ...