2010-06-28 9 views
20

Duplicar posible:
Copy to Output Directory copies folder structure but only want to copy filesVisual Studio: ¿enviar archivos de "contenido" al directorio de salida en lugar de a un subdirectorio?

estoy usando VS2010. Tengo un proyecto de C# que usa algunos archivos DLL nativos. En mi árbol de fuentes, tengo estos archivos nativos almacenados en un directorio "DLL" debajo del directorio principal de la solución. En mi proyecto C#, tengo la carpeta "DLL" listada con cada una de las DLL dentro de ella. Cada archivo DLL está configurado para generar la acción "Contenido" y "Copiar en salida" establecido en "Siempre".

Desafortunadamente, debido a que estos archivos están en un subdirectorio, VS parece pensar que deberían implementarse de esa manera. En lugar de implementarse en \ bin \ Debug, se implementan en \ bin \ Debug \ DLLs. ¿Hay alguna manera directa de convencer a VS de implementarlos directamente en \ bin \ Debug, o tendré que hacer algún tipo de acción de compilación personalizada para copiarlos en su lugar?

Respuesta

21

Esto se debe a que los tiene en una Carpeta en la solución. La solución pragmática es simplemente agregarlos a la raíz de la solución, la ubicación real del archivo no importa. Eso tal vez crea un poquito de desorden en su ventana de Solution Explorer. Si eso no es aceptable, entonces un evento de preconstrucción que use xcopy/d es la solución.

xcopy /d "$(ProjectDir)DLLs\*.dll" "$(TargetDir)"

+0

Sí, eso es lo que pensé. Gracias. – markerikson

0

Estamos usando Build Events para tal cosa. Simplemente escriba el comando xcopy y copie todos los dlls en la carpeta deseada

0

Creo que necesita la acción de compilación. Sin embargo, no tiene que crear un script de construcción completo: en la pestaña "Crear eventos" de las propiedades del proyecto, puede especificar qué hacer en la "Línea de comando de eventos posteriores a la construcción".

Cuestiones relacionadas