visual studio referencias referencia puedo puede error agregar administrador .net visual-studio reference dependencies

.net - studio - Dependencias de referencias no copiadas al directorio de salida



no puedo agregar referencia en visual studio 2017 (3)

Creo que si no agrega log4net como referencia en su proyecto, no se copiará.

Tengo una biblioteca de CommonUtils que incorporé a un dll de la que archivo referencia de varios de mis proyectos. CommonUtils depende de log4net.dll que se estableció como referencia de archivo y copy-local = true cuando se creó CommonUtils.dll. log4net.dll y CommonUtils.dll no están en GAC.

Todo funciona bien en MyWorkingProject, donde solo tengo una referencia de archivo a CommonUtils.dll - log4net.dll aparece en el directorio de salida (ya que es una dependencia de CommonUtils.dll pero no hace referencia a MyWorkingProject). Sin embargo, si creo un nuevo proyecto para agregar algunos unittest: MyWorkingProjectTest y proyecto de referencia MyWorkingProject y luego archivo de referencia CommonUtils.dll aquí (quiero utilizar algunos de los CommonUtils) luego sobre la construcción de log4net.dll que es una dependencia tanto en el proyecto referencia y también en la referencia del archivo no se copia en el directorio de salida.

¿Alguien puede aclarar lo que está sucediendo aquí? ¿El compilador no sabe cuál de los archivos log4net.dll debe capturar? ¿Hay algo que estoy haciendo mal aquí? ¿Debo hacer esto de alguna otra manera para que log4net.dll se copie explícitamente? ¿Tiene sentido que tenga que hacer referencia explícitamente a log4net?


Cuando tuve una situación similar en el pasado, recibí una advertencia de compilador en Visual Studio que me indicaba que necesitaba agregar una referencia a la biblioteca dependiente.

¿Recibes tal advertencia cuando compilas? Si es así, siga los consejos que da y encontrará Log4net copiado en su directorio de salida.


Esto es por diseño. Debe pensar en las implicaciones que causaría la herencia automática de las referencias. Si bien lógicamente puede ver cuáles deberían ser las referencias, no existe tal delineación para el compilador. En teoría, podría terminar reproduciendo el Framework y una buena parte de su sistema operativo si recorriera todo el árbol de dependencias.

Definitivamente es un dolor, y estoy de acuerdo y entiendo su frustración, pero supongo que Microsoft no pudo encontrar una manera lógica de hacerlo.