Para cada uno de sus proyectos de crear un netmodule o un conjunto y compilar/fusionar a todos en un solo conjunto.
Primera alternativa. Esto fue propuesto por Jay R. Wren:
Este es un truco lindo, pero con el CSC y VBC tanto el apoyo a los /target:module
y /addmodule
opciones, en realidad se podría hacer esto sin ILMerge sólo mediante el uso de un script de shell o haz un archivo.
Visual Studio no admite el tipo "netmodule", pero MSBuild sí.
Agregue el proyecto VB a su solución. Descargue el proyecto y edite el archivo del proyecto.
Cambio OutputType al módulo:
<OutputType>module</OutputType>
En lugar de añadir una referencia al proyecto deseado, se añade un módulo. Lamentablemente, otra vez VStudio falla aquí, pero MSBUILD funciona bien. Descargue el proyecto y edite el archivo del proyecto. Agregue un grupo de elementos con AddModules include directives.
<ItemGroup><AddModules Include="..\VbXml\bin\Debug\VbXml.netmodule" /></ItemGroup>
Esto le dirá msbuild para contar CSC utilizar /addmodule
directivas, al igual que el grupo de artículos de referencia, que se las arregla estudio.
Desventaja principal: No Visual Studio Intellisense para el módulo agregado. Ya tenemos referencias, es una lástima que no tengamos módulos.
[ACTUALIZACIÓN: como @Ark-kun señaló en otro lugar, Visual Studio puede referencia .netmodule
proyectos y tienen Intellisense. Simplemente agregue la referencia del proyecto ANTES de cambiar el tipo de salida.]
SharpDevelop tiene el primer paso, pero el segundo paso, un guión "Agregar módulo" se ha abierto como elemento de baja prioridad desde SD 2.0.
Segunda manera.Estegreat article (por Scott Hanselman) describe la forma de asambleas se fusionan de forma automática si está utilizando Visual Studio. Se hace le dan compatibilidad con IntelliSense
, a diferencia de la primera alternativa
.
tercer camino. Hágalo manualmente con scs. Ejemplo
cómo crear varios módulos y enlace tema en un solo archivo DLL:
csc /t:module RarelyUsedTypes.cs
csc /out:AllTypes.dll /t:library /addmodule:RarelyUsedTypes.netmodule AllTypes.cs
Para más información ver el libro CLR via C# de Richter.
no ese tipo de frustrar el propósito de tener un proyecto de n niveles? – slugster
¿Podría ser para facilitar el despliegue? –
Y distribución también. –