IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

inclure mon fchier csv dans le package d'installation de mon application c#


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2020
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2020
    Messages : 42
    Points : 21
    Points
    21
    Par défaut inclure mon fchier csv dans le package d'installation de mon application c#
    Bonsoir à tous, si je rédige un post ce soir c'est que je suis complètement désespéré sur le point d'abandonner mon projet.

    Je développe une application c# en windows form depuis plus d'un an et pour la déployer sur le windows store je dois fournir le package de mon application( ce package permet l'installation de l'application sur les PCs).

    Mon application utilise un fichier csv pour sauvegarder l'état enabled d'une vingtaine de boutons.

    Lorsque je lance mon application sur visual studio en mode debug ou release tous marche très bien je lis et j'écris dans mon fichier csv. Cependant dès lors que je génere le package de mon application et que j'installe celle-ci sur mon pc ou même un autre pc l'application refuse de se lancer car elle ne trouve pas mon fichier csv.

    J'ai finis par comprendre que le fichier csv n'est pas inclut dans le package d'installation de l'application et que par conséquent elle essaye de lire dans un fichier qui n'existe pas.

    Savez vous comment je pourrais permettre d'inclure ce fichier dans le package ?

    Merci pour toutes réponses

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Février 2009
    Messages : 155
    Points : 231
    Points
    231
    Par défaut
    Si tu passes par un projet de déploiement d'application Visual Studio, dans la fenêtre "File System" du projet tu as une ligne "File System on Target Machine" suivie d'un dossier "Application Folder" destiné à recevoir tous les éléments du package final, fichiers et dossiers. Il faut y inclure ton fichier CSV et il sera bien intégré au Setup de l'application. Attention à ce qu'il soit bien accessible ensuite depuis ton programme.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2020
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2020
    Messages : 42
    Points : 21
    Points
    21
    Par défaut
    Merci pour votre réponse,malheuresement je ne vois pas ou se situe cette case à cocher, est-elle dans les proprietes du projet ? si oui je ne l'ai pas trouvé

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Février 2009
    Messages : 155
    Points : 231
    Points
    231
    Par défaut
    Il n'y a pas de case à cocher, c'est dans une fenêtre. Dans l'explorateur de solution, faire un clic droit sur le nom du projet et sélectionner View/Système de fichiers.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2020
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2020
    Messages : 42
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par Krantz Voir le message
    Il n'y a pas de case à cocher, c'est dans une fenêtre. Dans l'explorateur de solution, faire un clic droit sur le nom du projet et sélectionner View/Système de fichiers.
    Ahhhh je vois j’ai déjà intégré le csv dans l’explorateur de solution mais ça n’a rien changé

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Février 2009
    Messages : 155
    Points : 231
    Points
    231
    Par défaut
    Curieux alors... Dans l'explorateur de solutions, tu peux cliquer sur ton fichier CSV, faire une copie d'écran de sa fenêtre de propriétés et nous l'envoyer ?

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2020
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2020
    Messages : 42
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par Krantz Voir le message
    Curieux alors... Dans l'explorateur de solutions, tu peux cliquer sur ton fichier CSV, faire une copie d'écran de sa fenêtre de propriétés et nous l'envoyer ?
    Pas de soucis je vous fais ça ce soir vers 20h je suis au travail actuellement et je n’ai pas accès à mon projet

  8. #8
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Pourquoi ne pas inclure ce fichier dans les ressources de ton projet puis lors de l'exécution de l'application tu vérifies la présence du fichier ou non ?

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2020
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2020
    Messages : 42
    Points : 21
    Points
    21
    Par défaut
    Voici la capture d'écran comme vous pouvez le voir mon fichier csv qui s’appelle "Base" est bie intégré dans les resources du projet.

    Nom : Capture.PNG
Affichages : 381
Taille : 233,4 Ko

    j'ai oublié de préciser que tard hier en cherchant et bidouillant pas mal j'ai réussi a obtenir une execption me disant que mon application n'arrivait pas a trouver le fichier Base.csv dans le chemin c:/windows/system32. Je suppose que mon application est censé installé certains fichiers a cet emplacement mais ne le fais pas. En tout cas une fois installé elle essaye de trouver le fichier à cet emplacement.

    En parlant de ca a un de mes professeur il m'a répondut " ah ah. chemin absolu est louche. préférer le chemin relatif." Je ne sais pas si ca vous parle je fais continuer mes recherches ce soir.

    Sans oublier merci pour toutes ces réponses !

  10. #10
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Très bien et à quel moment tu copies le fichier base.csv (inclu dans resources) dans un emplacement du disque dur lors de l'exécution de l'application....?
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                 if (!File.Exists(Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "base.csv")))
                    File.WriteAllText(Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "base.csv"), Resources._base);
    NB : Code à inclure dans ton binaire exécutable, ce qui n'a absolument rien à voir avec ton package d'installation !

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2020
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2020
    Messages : 42
    Points : 21
    Points
    21
    Par défaut
    Euh alors ca je ne le fais jamais puisque en debug le je n'avais qu'a préciser le chemin pour aller lire ecrire et ensuite c'etait bon, je pensais que lors de la création du package mon fichier csv sera "copié" dedans.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            private void ReadCsv()
            {
                string ligne;
                Char caractere = ';';
                int i = 1;
                System.IO.StreamReader fichier = new System.IO.StreamReader(@"Resources\Base.csv");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     private void WriteCsv()//ecriture levels
            {
                File.WriteAllText(@"\Resources\Base.csv", "levels" + ";" + "valeurs" + Environment.NewLine +
                "level00" + ";" + Variables.introduction + Environment.NewLine +
                "level01" + ";" + Variables.level1 + Environment.NewLine +
    je vais essayer ce que vous m'avez donné

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2020
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2020
    Messages : 42
    Points : 21
    Points
    21
    Par défaut
    je viens de tester et j'obtiens cette exception x(
    Nom : Capture.PNG
Affichages : 364
Taille : 68,7 Ko

  13. #13
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Ton application s'exécute depuis le répertoire Program files donc j espere que ton projet possède un fichier Manifest dans lequel tu as paramètrés l elevation de privilèges (RequireAdministrator) ?

    Sinon tu ne pourras jamais écrire dans un répertoire système.

    + d infos ici :
    https://stackoverflow.com/questions/...program-starts

    NB : Dans les bonnes pratiques il faudrait positionner les fichiers de configuration de l appli dans "AppData"

    Bon codage++

  14. #14
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2020
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2020
    Messages : 42
    Points : 21
    Points
    21
    Par défaut
    Je suis entrain d'essayer le code pour donner les permissions d'administrateur cela me parait plutot complexe au vu de mes tres faibles connaissances.

    J'ai essayé aussi de changer de systeme de sauvegarde en utilisant les settings de mon application mais je n'ai pas reussi. je vais continuer de chercher pour mon fichier csv mais je desespere

  15. #15
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 745
    Points : 5 437
    Points
    5 437
    Par défaut
    Etant donnée que tu écrase le contenu de ton CSV à chaque fois, autant ne pas le mettre en ressource mais le créer à la volée.
    En plus, les gens ont tendance à ce méfier d'un logiciel demandant une élévation de privilèges.

    Surtout si le but est simplement du stockages de paramétrages ou des données de sauvegarde d'état, la bonne pratique est d'écrire dans un répertoire fait pour ça.
    Parmi ceux-la, les plus courants sont :
    Environment.SpecialFolder.ApplicationData (propre à un utilisateur)
    Environment.SpecialFolder.CommonApplicationData (global pour tous les utilisateurs)

  16. #16
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2020
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2020
    Messages : 42
    Points : 21
    Points
    21
    Par défaut
    Merci pour cette réponse je vais essayer de me renseigner et trouver un tuto pour faire comme ça

  17. #17
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 745
    Points : 5 437
    Points
    5 437
    Par défaut
    Cela consiste simplement à mettre le fichier ailleurs et donc à lire et écrire depuis un répertoire à la place de ta ressource
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private void ReadCsv()
           {
                string ligne;
                Char caractere = ';';
                int i = 1;
                System.IO.StreamReader fichier = new System.IO.StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Base.csv");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void WriteCsv()//ecriture levels
            {
                File.WriteAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Base.csv", "levels" + ";" + "valeurs" + Environment.NewLine +
                "level00" + ";" + Variables.introduction + Environment.NewLine +
                "level01" + ";" + Variables.level1 + Environment.NewLine +

  18. #18
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2020
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2020
    Messages : 42
    Points : 21
    Points
    21
    Par défaut
    Je vais essayer votre code, il permet de placer le csv dans le dossier appdata c'est bien ca?

  19. #19
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par LaSaladeHumaine Voir le message
    Je vais essayer votre code, il permet de placer le csv dans le dossier appdata c'est bien ca?
    Oui ce que j'ai suggéré plus haut pour rester dans les bonnes pratiques

    NB : Dans les bonnes pratiques il faudrait positionner les fichiers de configuration de l appli dans "AppData"

  20. #20
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2020
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2020
    Messages : 42
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par popo Voir le message
    Cela consiste simplement à mettre le fichier ailleurs et donc à lire et écrire depuis un répertoire à la place de ta ressource
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private void ReadCsv()
           {
                string ligne;
                Char caractere = ';';
                int i = 1;
                System.IO.StreamReader fichier = new System.IO.StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Base.csv");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void WriteCsv()//ecriture levels
            {
                File.WriteAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Base.csv", "levels" + ";" + "valeurs" + Environment.NewLine +
                "level00" + ";" + Variables.introduction + Environment.NewLine +
                "level01" + ";" + Variables.level1 + Environment.NewLine +
    Citation Envoyé par wallace1 Voir le message
    Oui ce que j'ai suggéré plus haut pour rester dans les bonnes pratiques
    ca a l'air de marcher il faut juste que je trouve le moyen de généré le fichier csv a cet emplacement maintenant

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 8
    Dernier message: 03/10/2019, 13h03
  2. Inclure un fichier texte dans le package de livraison
    Par janma dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 03/04/2015, 22h00
  3. Réponses: 1
    Dernier message: 22/05/2010, 13h01
  4. Réponses: 10
    Dernier message: 18/04/2007, 17h17
  5. [VB.NET] Inclure MSDE dans le package
    Par SergeF dans le forum EDI/Outils
    Réponses: 4
    Dernier message: 24/06/2004, 21h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo