2009-01-30 7 views
32

J'ai un projet de console simple où je lis deux fichiers Excel. Les fichiers Excel sont inclus dans le projet ("ajouter un élément existant") et je les ai marqués avec "Copier dans le répertoire de sortie". Cependant, ils ne sont pas copiés dans le répertoire de débogage lors du débogage/de l'exécution du code. J'ai l'impression d'avoir oublié quelque chose de trivial. De quoi ai-je besoin pour en faire plus?Copier toujours dans le répertoire de sortie ne fonctionne pas

+0

Vous n'avez pas les fichiers ouverts dans Excel avez-vous? –

+0

Non, je viens de vérifier cela. Ça à l'air bon. –

Répondre

23

Les modifications apportées aux fichiers de code autres que le code source ne provoquent pas de reconstruction - elles ne sont pas prises en compte lorsque le compilateur est obsolète lors de la vérification. Essayez de forcer une reconstruction complète en supprimant complètement votre répertoire de sortie (parfois cela n'est pas terminé dans Visual Studio).

Il se peut que les fichiers n'aient pas été copiés car une version complète n'a pas été exécutée.

+2

Oui, c'était ça. Si simple ... –

+0

Existe-t-il un moyen de ** faire ** forcer Visual Studio à prendre en compte les fichiers de contenu? –

+0

Pas à ma connaissance. Cependant, puisque cette réponse date de 5 ans, il serait utile de tester explicitement les dernières versions de Visual Studio (2012/2013/2015). – Bevan

3

Question idiote mais exécutez-vous en mode débogage? J'ai fait la même erreur et j'ai réalisé que j'étais en mode release.

+0

Bonne question, mais non, je cours en mode debug. –

8

L'avez-vous marqué (e) comme contenu?

+2

Non, mais j'ai maintenant, et cela n'a pas fait de différence. –

45

Dans les propriétés du fichier dans Visual Studio, définissez:

Build Action: Aucun

Copier dans le répertoire de sortie: Copie toujours

+6

Cela m'a aidé avec un fichier icône. L'action de construction par défaut d'un fichier d'icône est "Resource". Définir le fichier à copier ne semble toujours pas fonctionner si l'action de construction est "Resource". Cela a fonctionné quand j'ai placé l'action de construction à "None". Merci. – user2023861

+1

oui, il a résolu mon problème aussi. Merci! – Maks

+0

la seule question restante est .. ** pourquoi?! ** –

0

Je viens d'avoir ce problème et pour une raison quelconque choisir "Créer une application sans manifeste" sous les propriétés du projet a finalement copié le fichier de contenu lié dans le répertoire de construction.

8

Rien de tout cela n'a fonctionné pour mon projet WPF. Vous devez le marquer Contenu + Toujours copier.

Référez-vous à this page pour plus de détails sur les différentes propriétés du fichier Visual Studio.

+0

Même pour moi. Mais j'écris le projet asp.net avec quelques fichiers html inclus par un autre projet dll qui est ensuite référencé dans mon projet asp.net mvc. – Dummy

2

J'ai rencontré un problème lorsque certains fichiers png ont été renommés - exclus - ajoutés à nouveau au projet. Il semblait que VS2015 avait perdu le suivi de ce qu'il fallait faire avec ces fichiers: bien que dans VS le "Copier dans le répertoire de sortie: Copier toujours" était défini sur les fichiers problématiques, la clé CopyToOutputDirectory n'était pas présente dans le fichier csproj. Je devais changer csproj manuellement à partir

<Content Include="xxx.png"/> 

à ceci:

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

cela devrait être upvoted, je pense que cela couvre la plupart des problèmes sur copiés à tort à des problèmes de sortie, j'ai également rencontré cela avec VS2017 – BigChief

0

VS 2015 se comporte de même, ne pas mettre à jour le répertoire de sortie correctement avec les fichiers de contenu. Ce semble semble fonctionner, étrangement, est de mettre un fichier texte dans le dossier avec les fichiers de contenu et en faire un fichier de contenu aussi. Le fichier texte sera copié dans le répertoire, de même que tous les autres fichiers de contenu. Encore plus étrange, si vous supprimez le fichier texte, il continuera à apparaître dans le répertoire de sortie même s'il n'y a plus d'original à copier.

Questions connexes