Si je souhaite copier certains fichiers de mon projet dans le dossier .\bin\debug\
lors de la compilation, il me semble alors que je dois les placer à la racine du projet. Les placer dans un sous-dossier semble les copier dans le dossier .\bin\debug\
dans la même structure que celle dans laquelle ils sont stockés.
Y-a-t-il un moyen d'éviter ça?
Soyons clairs: si j’ai un MyFirstConfigFile.txt
et un MySecondConfigFile.txt
dans un dossier ConfigFiles
et que je règle leur Copier en sortie soit Copier ... , ils apparaissent dans le dossier .\bin\debug\ConfigFiles\
. Je veux qu'ils apparaissent dans le dossier .\bin\debug\
.
Vous pouvez le faire avec un événement post-build. Définissez les fichiers sur aucune action lors de la compilation, puis copiez-les dans la macro dans le répertoire souhaité.
Voici une macro post-compilation qui fonctionnera, selon moi, en copiant tous les fichiers d'un répertoire appelé Configuration dans le dossier racine de la compilation:
copy $(ProjectDir)Configuration\* $(ProjectDir)$(OutDir)
Vous pouvez utiliser une tâche MSBuild sur votre csproj, comme ça.
Editez votre fichier csproj
<Target Name="AfterBuild">
<Copy SourceFiles="$(OutputPath)yourfiles" DestinationFolder="$(YourVariable)" ContinueOnError="true" />
</Target>
Vous pouvez également placer les fichiers ou les liens à la racine de l'explorateur de la solution, puis définir les propriétés du fichier:
Build action = Content
et
Copy to Output Directory = Copy if newer
(par exemple)
Pour un lien, faites glisser le fichier de l'explorateur Windows dans l'explorateur de solutions en maintenant les touches Maj et Contrôle enfoncées.
Vous souhaitez utiliser un événement post-build sur votre projet. Vous pouvez spécifier la sortie ici et il existe des valeurs de macro pour les éléments fréquemment utilisés tels que le chemin du projet, le nom de l'élément, etc.
J'ai trouvé cette question en cherchant "copier des fichiers dans le dossier de l'application au moment de la compilation". OP semble avoir déjà réglé ce problème, mais si vous ne le faites pas:
Dans Visual Studio, cliquez avec le bouton droit de la souris sur le fichier, sélectionnez Propriétés, puis modifiez l'option 'Copier vers la sortie' en 'Toujours'. Voir http://msdn.Microsoft.com/en-us/library/0c6xyb66.aspx
copier d'un sous-dossier à un autre
if not exist "$(ProjectDir)$(OutDir)subfolder" mkdir "$(ProjectDir)$(OutDir)subfolder"
copy "$(ProjectDir)subfolder\" "$(ProjectDir)$(OutDir)subfolder\"
Vous pouvez utiliser l'événement PostBuild du projet. Une fois la construction terminée, vous pouvez exécuter un fichier de commandes DOS et copier les fichiers souhaités dans le dossier souhaité.