¿Es “Copy Local” transitivo para referencias de proyectos?

Wrt. el engaño propuesto: Como esto aquí, Queston sugiere lo contrario depregunta vinculadaPrefiero pensar que esno un tonto

primero, Yo leí¿Cuál es la mejor práctica para "Copiar local" y con referencias de proyectos? (ademásesta) y tendré que probar esto de todos modos, pero obtener comentarios generales sobre esto parece necesario ya quedocs en estas cosas son horribles y solo estoy en VS2010 y tal vez cambiaron algo en versiones más nuevas que será bueno saber.

Segundo, Solo me interesaproyecto referencias para esta pregunta como helea que los ensamblajes del GAC se manejan de manera diferente y el GAC es irrelevante para mi problema.

Tercero, después de leer el engaño sugerido, pero más aún el agradableresponder aquí por @Albireo, también parece que es importante diferenciararchivo dependencias, donde la dependencia hace referencia a un archivo de ensamblado dll yproyecto dependencias (es decir, sobre lo que pregunto), donde la dependencia hace referencia a unproyecto e implícitamente el archivo de salida de ese proyecto.

De todos modos, aquí está la situación, algo peculiar, creo, pero aún así:2 proyectos ejecutables C #n C # dll proyectos de ensamblajeLos 2 ejecutables tienen diferentes directorios de salida, ya que se implementarán por separado y de esa manera también están separados en la máquina del desarrollador.Los 2 ejecutables dependen de algunos de los ensamblados de DLL (que pueden depender el uno del otro)Hay tres directorios de salida:/x1 para ejecutable 1 proyecto/x2 para el proyecto ejecutable 2/lib para todos los conjuntos dll

Los ensamblados de DLLtodas tenerCopy Localajustado afalse para sus referencias de proyecto, ya que todos se construyen en el mismo directorio de salida.

El 2proyectos ejecutables haber instaladoCopy Local atrue para todas las referencias del proyecto de ensamblaje de DLL a las que hacen referencia directamente, de modo que las DLL se copien en/x1 /x2 respectivamente.

La pregunta ahora es wrt. a archivos DLL que sonno referenciado directamente por un proyecto ejecutable, perosolamente transitivamente a través de un ensamblaje referenciado:Will asambleas, que sonsolamente referenciado transitivamente a través de otro ensamblado, se copiará en la carpeta de salida del ejecutable, cuando "Copiar local"es establecido en verdadero en la primera asamblea?

Ejemplo:

x1.csproj (por ejemplo, salida =x1/one.exe)Referencia:dlA.csproj (por ejemplo, salida =lib/a.dll) conCopy Local = *true*(sin referencia directa en b.dll)dlA.csproj (por ejemplo, salida =lib/a.dll)Referencia:dlB.csproj (por ejemplo, salida =lib/b.dll) conCopy Local = **false**(sin referencia directa en c.dll)dlC.csproj (por ejemplo, salida =lib/c.dll)(sin más referencias relevantes)

Por lo tanto, tenemos una dependencia lógica deone.exe -> a.dll -> b.dll -> c.dll, donde soloa.dll obviamente con copiarse en el directorio de salida deone.exe. ¿Los otros dos dlls también se copiarán en el directorio de salida? ¿Está esto documentado en alguna parte?

Y sí, lo intenté. Y síparece para trabajar, pero aún no lo he tocado lo suficiente y, de todos modos, tal vez haya algo más que me haya perdido. (Y también está la pregunta wrt. Cualquier documento oficial).

Respuestas a la pregunta(2)

Su respuesta a la pregunta