Antecedentes referencia de archivo DLL: que tienen dos conjuntos denominados "A" y "B". "" A "hace referencia a" B "." A "también hace referencia a algunos dll adicionales (Microsoft.Enterprise Library.Data y Microsoft Enterprise Library.Common) que creo que deberían estar empaquetados en nupkg.NuGet Envasado y
Creo que mi paquete nupkg debe contener la salida de montaje de la "a", "B" y los dos conjuntos de "Microsoft Enterprise" para que cuando alguien instala mi paquete se les dará una referencia directa a la "a" de la Asamblea y los otros tres conjuntos estarían disponibles (pero no hace referencia directamente, por lo que su aplicación correría Cuál es la forma correcta de empaquetar los archivos DLL no hace referencia a
Intento # 1:.? embalaje todos los DLL necesarios en una carpeta \ net35 de acuerdo con el NuGet documentation regarding the "references" elemento "Si se omite este elemento, se aplica el comportamiento habitual, que es hacer referencia a cada conjunto en la carpeta lib"
Por lo tanto, supongo que al usar este elemento solo se incluirán los ensamblados especificados como referencias. Este no parece ser el caso si también uso un elemento "archivo" <file src=*.dll" target="lib\net35" />
. Si tengo un elemento como este que copia todos los archivos DLL al paquete, el ensamblado que implementa este paquete hace referencia a TODOS los ensamblados en el directorio \ net35. Esto no es lo que quiero hacer. Me esperaba un poco de magia que sólo el conjunto especificado en "referencias" sería una real y hacer referencia a todos los demás permanecerían en la carpeta \ packages estallado y la aplicación funcionarían ya que todos los archivos DLL se encuentran en el mismo directorio. Tal vez soy incorrecto ....
Intento # 2 Agregar como contenido para proyectar Si coloco las asambleas sin referencia a \ content \ lib en lugar de lib \ net35, cuando se envasa esto crea una carpeta \ lib en el proyecto y vuelca directamente los \ dlls \ lib dlls en ese proyecto, lo que nos obliga a verificarlos en el control de fuente. Esto funciona, compila y funciona como yo quiero, pero realmente no quiero que estos estén almacenados en la carpeta \ lib del proyecto.
Estoy buscando una solución en la que el proyecto obtenga las referencias a "A" y aún pueda ejecutarse con otros conjuntos requeridos ubicados conjuntamente pero no referenciados directamente. Parece que el intento n. ° 1 es el camino correcto, pero tal vez hay un error.
FYI, entré en este as a issue with NuGet directamente a ver que el equipo tiene una respuesta así.
Esta fue una regresión/error introducido en NuGet 2.1, Han corregido el problema y que se fija en el punto 2.2 de este mes. – Jay