2009-01-30 29 views
32

Tengo un proyecto de consola simple en el que estoy leyendo dos archivos de Excel. Los archivos de Excel están incluidos en el proyecto ("agregar elemento existente") y los he marcado con "Copiar al directorio de salida". Sin embargo, no se copian en el directorio de depuración al depurar/ejecutar el código.Copiar siempre al directorio de salida no funciona

Siento que he olvidado algo trivial. ¿Qué necesito hacer más?

+0

No tiene los archivos abiertos en Excel, ¿o sí? –

+0

No, acabo de verificar eso. Se ve bien. –

Respuesta

23

Los cambios en los archivos de código no fuente no provocan que se produzca una reconstrucción; no se tienen en cuenta cuando el compilador realiza la verificación obsoleta.

Intente forzar una reconstrucción completa eliminando por completo su directorio de salida (algunas veces hacerlo desde Visual Studio no está completo).

Es posible que los archivos no se hayan copiado porque no se ejecutó una compilación completa.

+2

Sí, eso fue todo. Tan simple ... –

+0

¿Hay alguna manera de ** hacer ** obligar a Visual Studio a tener en cuenta los archivos de contenido? –

+0

Que yo sepa. Sin embargo, dado que esta respuesta tiene 5 años, valdría la pena probar explícitamente las últimas versiones de Visual Studio (2012/2013/2015). – Bevan

3

Pregunta tonta, pero ¿se está ejecutando en modo de depuración? Cometí el mismo error y me di cuenta de que estaba en modo de lanzamiento.

+0

Buena pregunta, pero no, me estoy ejecutando en modo de depuración. –

8

¿Los marcó como contenido?

+2

No, pero lo tengo ahora, y no hizo la diferencia. –

45

En las propiedades del archivo en Visual Studio, establezca:

acción Construye: Ninguno

Copiar al directorio de salida: Copiar siempre

+6

Esto me ayudó con un archivo de icono. La acción de compilación predeterminada de un archivo de icono es "Recurso". Establecer el archivo para copiar siempre no parece funcionar si la acción de compilación es "Recurso". Funcionó cuando configuré la acción de compilación en "Ninguno". Gracias. – user2023861

+1

sí, también ha resuelto mi problema. ¡Gracias! – Maks

+0

la única pregunta restante es ... ** ¿por qué?! ** –

0

sólo tenía este problema y por alguna razón elegir "Crear aplicación sin manifiesto" en las propiedades del proyecto finalmente copió el archivo de contenido vinculado al directorio de compilación.

8

Nada de esto funcionó para mi proyecto WPF. Debe marcarlo Contenido + Copiar siempre.

Consulte this page para obtener detalles sobre las diferentes propiedades del archivo Visual Studio.

+0

Lo mismo para mí. Pero estoy escribiendo el proyecto asp.net con algunos archivos html incluidos en otro proyecto dll que luego se referencia en mi proyecto asp.net mvc. – Dummy

2

Tuve un problema cuando algunos archivos png se renombraron-excluidos-se agregaron nuevamente al proyecto. Parecía que VS2015 había perdido el seguimiento de qué hacer con estos archivos: aunque en VS, el "Directorio Copiar a salida: Copiar siempre" se estableció en los archivos problemáticos, la clave CopyToOutputDirectory no estaba presente en el archivo csproj. Tenía que cambiar manualmente desde csproj

<Content Include="xxx.png"/> 

a esto:

<Content Include="xxx.png"> 
    <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
</Content> 
+0

esto debe ser actualizado, creo que esto cubre la mayoría de los problemas sobre copias incorrectas a problemas de salida, también me encontré con VS2017 – BigChief

0

VS 2015 comporta de manera similar, no actualizar el directorio de salida correctamente con archivos de contenido. Lo que parece que parece funcionar, extrañamente, es poner un archivo de texto en la carpeta con los archivos de contenido y convertirlo también en un archivo de contenido. El archivo de texto se copiará en el directorio y también lo harán todos los demás archivos de contenido. Más extraño aún, si luego elimina el archivo de texto, continuará apareciendo en el directorio de salida aunque ya no haya un original para copiar.

Cuestiones relacionadas