Это потому, что CopyLocal
копирует указанную сборку и ее зависимости в выходную папку, , за исключением случаев, когда указанная сборка или зависимость находится в GAC .
Поскольку вы установили CopyLocal
для ссылочной B
, и B
, и его зависимость C
будут скопированы в выходную папку A
, даже если вы не установили CopyLocal
для ссылочной C
в проекте B
.
Обратите внимание: если вы создаете B
, C
это , а не , скопированный в выходную папку B
.
Если вы хотите, чтобы B
было скопировано в выходную папку A
, но не хотите, чтобы то же самое произошло с C
, одним из решений было бы поместить C
в GAC.