Tengo un proyecto de biblioteca de clase que hice. Llamémoslo ClassA. En ClassA, necesito acceder a algunas herramientas que residen en dll (ToolsDLL.dll).¿Puedes agrupar dlls juntos?
En ClassA He agregado ToolsDLL.dll al proyecto y he seleccionado el archivo ToolsDLL.dll para copiar al directorio de salida SIEMPRE. Entonces esa biblioteca compila y compila muy bien y en el directorio de salida veo ClassA.dll junto con ToolsDLL.dll
A continuación, deseo escribir una aplicación, digamos App_A que usa los métodos en ClassA. Entonces, en mi proyecto App_A, agregué una referencia a ClassA.dll para poder acceder a su espacio de nombres. Todo está bien y bien, construye/compila.
El problema es que tan pronto como ejecuto App_A y llega a un punto donde se necesita usar ToolsDLL.dll arroja una excepción "No se puede cargar ToolsDLL.dll. No entiendo cómo es posible que no puede encontrar esa DLL porque está en el mismo directorio que ClassA.dll.
Descubrí que si pongo ToolsDLL.dll en el directorio de salida de App_A funciona bien. ¿Hay alguna forma de evitarlo? de alguna forma, ToolsDll.dll puede ser incluido de alguna manera con ClassA.dll. La razón es que mis clientes escribirán sus propias aplicaciones similares a AppA y sería bueno si solo tuvieran que hacer referencia a un archivo en su proyecto y no a múltiples
Parece que ILMerge solo se puede usar en conjuntos .Net. Es eso correcto. En mi caso, ToolsDLL.dll me lo proporcionó un fabricante de chips. No sé si es un ensamblado .net o no. ¿Eso importa? – PICyourBrain
Sí, creo que solo funciona para ensamblajes .NET. Para averiguar qué tipo de '.dll' tienes, quizás puedas usar el.Utilidad NET SDK 'ildasm', para intentar y desmontar el' .dll'. Si se trata de un ensamblado .NET, esto debería funcionar; si contiene código nativo, 'ildasm' debería fallar. – stakx
Me di cuenta en Visual Studio si voy a ToolsDll.dll -> Propiedades hay una propiedad llamada Acción. ¿Puedo simplemente configurar esto como Recurso Integrado? – PICyourBrain