2009-02-27 10 views
10

Tengo un proyecto de aplicación WPF con varias referencias de proyectos dentro de una única solución en VS 2008. Cuando compilo mi solución, todos los dlls a los que se hace referencia se envían a la misma carpeta en la que sale el .exe principal.¿Puede Visual Studio compilar referencias de proyectos en una carpeta diferente a la principal .exe

¿Es posible configurar mi compilación principal del proyecto .exe para generar todas las referencias en una subcarpeta relacionada con mi .exe?

Me gustaría que el resultado final sea algo como esto:

MyApp.exe MyApp.exe.config Lib \ SomeReference.dll Lib \ SomeReference2.dll

(supongo que si esto es posible, sería posible con cualquier .exe).

Gracias! Jon

Respuesta

7

Parece que es un proceso bastante intenso.

Primero establezca la propiedad Copy Copy de la referencia en false para que los archivos .dll no se copien en la carpeta bin \ Debug.

A continuación, cree un elemento assemblyBinding\probing en su app.config para instruir el tiempo de ejecución para buscar archivos DLL en la carpeta Lib

A continuación, crear una acción posterior a la generación de copiar los archivos DLL necesarios para la \ bin \ Debug \ Lib carpeta.

+0

puede ser más fácil dejar Copy Local = true, pero combine assemblyBinding \ probing con mover * .DLL de $ (TargetDir) a la subcarpeta en post-compilación. –

+0

Si se trata de referencias de proyectos, estaría de acuerdo contigo, pero si estos son dlls precompilados, puedes copiarlos de su fuente en el postbuild. Además, si estuvieras creando un msi, no querrías que los dlls fueran parte de la salida primaria, lo cual creo que sería si CopyLocal = true. – foson

+0

ah sí, gracias, estaba pensando en referencias de proyectos. Hacer referencia a las DLL en lugar de a los proyectos es un mal karma, pero las DLL de terceros y el proyecto de implementación son excelentes puntos. –

Cuestiones relacionadas