¿Cómo guardar archivos DLL en una carpeta diferente cuando se compila en Visual Studio?


Supongamos que tengo un Formulario de Ventana / Aplicación de Consola C # project with some external references and references to other class library projects in the same solution too.

Cuando compilo el proyecto Window Form , Quiero que las bibliotecas referenciadas se almacenen en una ubicación diferente (por ejemplo: bin \ Release \ Libraries), y no en la misma carpeta que el .exe .

¿Es posible hacerlo?

Author: Oscar Mederos, 2011-02-25

5 answers

Hay 2 partes de tu pregunta:

Cómo configurar soluciones para construir ensamblados/EXE en carpetas de su elección - esto se configura a través de las propiedades del proyecto en VS (propiedades del proyecto -> construir -> ruta de salida). También el valor de la propiedad check "copy local" en cada referencia.

Cómo cargar archivos ensamblados desde ubicaciones no predeterminadas (es decir, desde su...\ Libraries carpeta) - es necesario hacer cambios en su aplicación.archivo de configuración para agregar estas rutas no predeterminadas al ensamblado ubicación de búsqueda ( http://support.microsoft.com/kb/837908 ).

 15
Author: Alexei Levenkov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-23 16:06:59

Las respuestas correctas fueron dadas anteriormente. Solo mencionaré que hay un paquete nuget para esto llamado PrettyBin .

Instálalo en tu proyecto de inicio. DLLs y XMLs irán a una carpeta lib y tendrás un ejemplo de trabajo de cómo se hace, si no quieres personalizar.

 4
Author: aershov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-14 13:09:19

Establecer la ruta de referencia en el proyecto peoplerties.

También puede especificar a dónde va su exe compilado especificando la ruta de salida en el proyecto peoplerties.

 2
Author: ukhardy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-24 21:18:47

Aquí encontrará las mejores prácticas para organizar referencias de proyectos:http://codebetter.com/patricksmacchia/2009/01/11/lessons-learned-from-the-nunit-code-base/

Busque en el capítulo " La Referencia del proyecto VisualStudio + Copiar la opción Local true es mala!"

 1
Author: Petar Repac,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-24 21:35:42

Sí es posible, lo haría en su script de msbuild. Si bien no puedo darle una respuesta exacta, mire aquí esta pregunta en SO Copie todos los archivos y carpetas usando msbuild

 0
Author: Doug Chamberlain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:53:59