Nous mettrons à jour notre Politique de confidentialité prochainement. En voici un aperçu.

L'essentiel de Visual Studio 2017

Copier des éléments dans le répertoire de sortie

Testez gratuitement nos 1340 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Vous verrez comment indiquer, à Visual Studio, de copier des fichiers qui ne sont pas des fichiers source, dans le répertoire de destination, et lors de la génération.
06:04

Transcription

Je suis revenu dans Visual Studio et on va continuer à parler de la compilation. Mais d’abord une astuce, si vous êtes dans le même cas que moi. Quel est mon cas ? Un peu désespéré. C’est que j’ai réalisé une application qui s’appelle SQL Trimegiste, qui va se servir d’un dossier dans lequel j’ai placé des .xml, pour pouvoir lancer des requêtes sur un serveur SQL. Sans entrer dans les détails, ceci, c’est quelque chose que je veux livrer avec mon application et je veux que mes utilisateurs aient la possibilité de créer leur fichiers .xml, de les placer dans ce répertoire et l’application va les reconnaître et lancer les requêtes qui s’y trouvent. Donc, c’est quelque chose de souple et d’évolutif, je peux livrer le programme et les gens peuvent ajouter leurs propres requêtes. Bien, lorsque j’ai compilé, lorsque j’ai fait Démarrer, ici, j’ai eu un message d’erreur qui me dit : « Le fichier etc., etc \bin\Debug\CorpusHermeticum\ », vous voyez, ici, on me dit dans .\bin\Debug\CorpusHermeticum le folder .xml est introuvable. Et c’est effectivement, quelque chose que je cherche, moi, dans mon programme. Pourquoi je le cherche ? Parce que je veux avoir ce .xml pour pouvoir afficher, ici, une liste des requêtes qui se trouvent dans les fichiers .xml. Mais pourquoi, ce fichier n’est-il-pas trouvé ? Si je vais regarder dans bin\Debug\ etc., j’ai un répertoire CorpusHermeticum et à l’intérieur,en fait, pas grande chose par rapport à ce qui ce trouve dans le répertoire ici, dans mon projet. Alors, qu’est-ce qui c’est passé ? Mais on pourrait ce poser la question, qu’est-ce qui est généré lorsqu’on fait une compilation ? Evidemment, j’ai plusieurs types de fichiers dans mon projet, j’ai du code source. Alors là, il est assez logique de penser que ce code source est compilé, mis dans une assembly dans le .exe et ensuite, eh bien, c’est tout, il n’y a pas grand-chose à en faire. On a vu qu’il y avait, également, un fichier .config et en fait, il s’appelle App.config, ici, mais à la compilation, il va être renommé avec le nom de l’application, donc SqlTrimegiste.exe.Config, avec un c majuscule d’ailleurs. Donc ça, c’est aussi un effet de la compilation. Mais qu'en est-il des répertoires et à l’intérieur, d’ailleurs, des fichiers qui ne sont pas des fichiers à compiler, comme des .xmls ? Alors, si vous regardez, ici, dans les propriétés de chaque élément, si je vais regarder, par exemple, dans le .cs, he bien, je vais regarder les propriétés et on me dit Action de la génération. Qu’est-ce qu’on va faire dans la génération ? On va compiler. Ça tombe bien, c'est du C#, merci, Compiler, il n’y a pas de problème. Et j’ai aussi une information Copier dans le répertoire de sortie. Et bien sûr, comme on va compiler, on ne va pas le copier. Très bien, pour l’instant tout va bien ! Qu’est-ce qu’on fait du fichier .ico ? He bien, l’Action de génération , c’est de type Ressource. Finalement, ça va être une ressource qu’on va intégrer dans l’assembly, mais là, on n’a pas besoin de le compiler, on va, simplement, l’intégrer dans le .exe et le considérer comme une ressource. En programmation, une ressource, c’est quelque chose comme une image ou du son qu’on va utiliser dans l’application. Et donc, chaque fichier a une action de génération, ici. Vous allez voir, il y en a pas mal. On peut dire Page, Splash Screen, Design Data, c’est une sorte de catégorie, finalement, de fichier pour le projet. Alors, qu’en est-il de mon dossier, CorpusHermeticum ? He bien, voyez que le dossier, il y a aucune option particulière dans Visual Studio pour dire tu crées le dossier de l’autre côté. En fait, le dossier, on s’en fiche quelque part, parce qu’on ne va pas créer un dossier vide. Par contre, à l’intérieur, on va indiquer ce qu’on va faire des fichiers. Alors là, j’ai un .xml et l’action de génération, c’est Ressource. Pas terrible, non ? Finalement, si c’est une ressource, ce .xml va être inclus dans l’assembly, c'est pas vraiment ce que je veux. Est-ce qu’on veut le copier dans le répertoire de sortie ? C’est marqué : Ne pas copier. Donc, effectivement, c’est pas terrible. Si je regarde à nouveau ce qui c’est passé dans mon répertoire, ici, j’ai eu deux fichiers qui sont correctement sortis : Corpus.xsd et Connexions.xml. Alors, je vais retourner, ici, pour voir de quoi il s’agit : Corpus.xsd ou Connexions.xml. Quelles sont les propriétés ? Action de Génération : Aucun. Effectivement, on ne va rien faire de ce fichier, c’est du .xml, on ne va pas y toucher. Mais par contre, ce qu’on voudrait faire, c’est Copier dans le répertoire de sortie. Et ici, j’ai trois solutions : Ne pas copier, donc quelque part, c’est des fichiers qui servent à rien seulement dans mon projet, mais je ne veux pas les générer, lorsque je fais de la génération, je les garde pour moi, Toujours copier, donc chaque fois qu’on génère on va recopier le fichier ou bien, Copier si plus récent. Copier si plus récent, c’est pas mal, si j’ai modifié le fichier, on le recopie, sinon, on n’a pas besoin de le copier sans cesse. Donc ça, c'est pas mal. Donc, ça veut dire que pour que mes fichiers soient copiés dans le répertoire de sortie et pour éviter cette erreur, il faut que j’aille sélectionner, malheureusement, fichier par fichier, il faut que je dise, ici, Aucun et il faut Copier dans le répertoire de sortie en disant, par exemple, Copier si plus récent. Ici, ça va marcher puisqu’il n’est pas dans le répertoire de sortie, donc, il sera déjà copié une première fois. Moralité, si vous avez besoin de livrer des fichiers supplémentaires dans le répertoire de votre programme pour, voilà, que ce soit des fichiers d’image ou que sais-je, ou du .xml comme ici, pensez à cette option cachée dans les Propriétés des éléments de votre projet.

L'essentiel de Visual Studio 2017

Découvrez les éléments fondamentaux de l'interface de Visual Studio. Exploitez la richesse des fonctionnalités de cet environnement de développement intégré de Microsoft.

5h16 (65 vidéos)
Aucun commentaire n´est disponible actuellement
 
Spécial abonnés
Date de parution :10 août 2017

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !