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 :

Problème de déploiement


Sujet :

C#

  1. #1
    Membre chevronné
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    1 984
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 1 984
    Points : 2 028
    Points
    2 028
    Par défaut Problème de déploiement
    Bonjour tout le monde,

    J'ai écrit un programme (WinForms, sans formulaire) qui sélectionne une fenêtre d'après son titre reçu sur la ligne de commande, et lui envoie une simulation de touches, aussi reçue sur la ligne de commande.

    Je l'ai copié, avec tout ce qu'il y avait dans son répertoire, vers la machine utilisatrice.

    Depuis la machine de développement, le programme sur la machine utilisatrice fait bien ce que je lui demande.

    Depuis le clavier de la machine utilisatrice, il y a bien un programme mais il ne fait rien. Ah si, en curseur de souris il met le sablier pendant une seconde. Mais c'est tout.

    Les deux machines ont la même version de Windows (Microsoft Windows [version 10.0.19045.2604]22H2) et les mêmes versions de .Net telles que détectées par CLRVER (2 et 4)

    Quezaco ?

    Pour les programmes téléchargés il y a un bouton pour activer, dans les propriétés. C'est dans l'onglet général, n'est-ce pas ?
    Et je n'ai pas le souvenir que ça concerne un programme développé avec Visual Studio et transféré via un réseau local ...
    Encore que ça serait cohérent, mais je me dis que ça aurait dû me laisser plus de trace en mémoire.

    Autre chose qui m'intrigue, je tente un lancement du programme, puis je vois dans les propriétés, dernier accès il y a 45 mn.
    Alors je tente à nouveau, et je vois dernier accès il y a 48 mn.

    Je viens de refaire la copie, cette fois vers le répertoire des programmes en passant par C:\Temp, via AnyDesk, comme je fais d'habitude, en me méfiant de l'interdiction de l'exécution des données.
    Pas mieux.

    D'ailleurs, je viens de copier un autre programme dans le répertoire essayé en premier, via le réseau local, et ça marche.

    Des idées, quelqu'un ?

    Si le mode de déploiement a convenu à un autre programme, ça pourrait bien changer la donne quant à la direction dans laquelle chercher.

    Je précise que mon programme dans sa dernière version affiche un MessageBox, pour voir. Le MessageBox s'affiche sur la machine de développement, pas sur la machine de destination.

    Ah, mais voilà quelque chose que j'aurais dû dire plus tôt : dans le répertoire de l'exécutable, un fichier pourrait bien aiguiller vers ce qui manque au déploiement.
    KeysToWin.dep.json
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    {
      "runtimeTarget": {
        "name": ".NETCoreApp,Version=v6.0",
        "signature": ""
      },
      "compilationOptions": {},
      "targets": {
        ".NETCoreApp,Version=v6.0": {
          "KeysToWin/1.0.0": {
            "dependencies": {
              "System.Console": "4.3.1"
            },
            "runtime": {
              "KeysToWin.dll": {}
            }
          },
          "Microsoft.NETCore.Platforms/1.1.0": {},
          "Microsoft.NETCore.Targets/1.1.2": {},
          "System.Console/4.3.1": {
            "dependencies": {
              "Microsoft.NETCore.Platforms": "1.1.0",
              "Microsoft.NETCore.Targets": "1.1.2",
              "System.IO": "4.3.0",
              "System.Runtime": "4.3.0",
              "System.Text.Encoding": "4.3.0"
            }
          },
          "System.IO/4.3.0": {
            "dependencies": {
              "Microsoft.NETCore.Platforms": "1.1.0",
              "Microsoft.NETCore.Targets": "1.1.2",
              "System.Runtime": "4.3.0",
              "System.Text.Encoding": "4.3.0",
              "System.Threading.Tasks": "4.3.0"
            }
          },
          "System.Runtime/4.3.0": {
            "dependencies": {
              "Microsoft.NETCore.Platforms": "1.1.0",
              "Microsoft.NETCore.Targets": "1.1.2"
            }
          },
          "System.Text.Encoding/4.3.0": {
            "dependencies": {
              "Microsoft.NETCore.Platforms": "1.1.0",
              "Microsoft.NETCore.Targets": "1.1.2",
              "System.Runtime": "4.3.0"
            }
          },
          "System.Threading.Tasks/4.3.0": {
            "dependencies": {
              "Microsoft.NETCore.Platforms": "1.1.0",
              "Microsoft.NETCore.Targets": "1.1.2",
              "System.Runtime": "4.3.0"
            }
          }
        }
      },
      "libraries": {
        "KeysToWin/1.0.0": {
          "type": "project",
          "serviceable": false,
          "sha512": ""
        },
        "Microsoft.NETCore.Platforms/1.1.0": {
          "type": "package",
          "serviceable": true,
          "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
          "path": "microsoft.netcore.platforms/1.1.0",
          "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512"
        },
        "Microsoft.NETCore.Targets/1.1.2": {
          "type": "package",
          "serviceable": true,
          "sha512": "sha512-wETQM2IJ1uP//roY/Yz7f7NnJPzX8xgxux9+hVvkXtD1Yr6VsXefS9KZIO3He18LD7h7ACgirp5rNlEeNI0ynA==",
          "path": "microsoft.netcore.targets/1.1.2",
          "hashPath": "microsoft.netcore.targets.1.1.2.nupkg.sha512"
        },
        "System.Console/4.3.1": {
          "type": "package",
          "serviceable": true,
          "sha512": "sha512-6iKDG36vugpW230eBGMLL6GQIx+Buf5txz6DFC1c4MOH8qcOo2mFzId6GsJUTptR4AusnDsdUeCYuzDiftD39w==",
          "path": "system.console/4.3.1",
          "hashPath": "system.console.4.3.1.nupkg.sha512"
        },
        "System.IO/4.3.0": {
          "type": "package",
          "serviceable": true,
          "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
          "path": "system.io/4.3.0",
          "hashPath": "system.io.4.3.0.nupkg.sha512"
        },
        "System.Runtime/4.3.0": {
          "type": "package",
          "serviceable": true,
          "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
          "path": "system.runtime/4.3.0",
          "hashPath": "system.runtime.4.3.0.nupkg.sha512"
        },
        "System.Text.Encoding/4.3.0": {
          "type": "package",
          "serviceable": true,
          "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
          "path": "system.text.encoding/4.3.0",
          "hashPath": "system.text.encoding.4.3.0.nupkg.sha512"
        },
        "System.Threading.Tasks/4.3.0": {
          "type": "package",
          "serviceable": true,
          "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
          "path": "system.threading.tasks/4.3.0",
          "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512"
        }
      }
    }

  2. #2
    Membre chevronné
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    1 984
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 1 984
    Points : 2 028
    Points
    2 028
    Par défaut
    J'ai l'impression que j'y suis.

    Le problème n'est pas au niveau de mon programme, ni des packs .Net installés, mais plutôt au niveau du système ; reste à préciser si ça concerne plus particulièrement les répertoires joints par réseau local.

    Lorsque je copie des fichiers pour la première fois tout se passe bien, sauf que dans la première version que j'ai déployée il manquait des choses donc rien n'apparaissait.

    Ensuite, quand je copie de nouveau les fichiers je m'attends à ce que ça remplace les versions existantes, il semblerait bien que ça ne l'ait pas fait.

    Je me suis pourtant bien méfié de ça, il me semble qu'à un moment j'ai effacé les fichiers pour voir, mais c'est seulement maintenant que ça marche.

    Donc, j'ai cru effacer les fichiers, mais mes souvenirs n'étant pas suffisamment précis à ce niveau, puisque maintenant que je l'ai refait ça marche, il y a une suspicion que ça soit bien l'explication.

    Donc, au moment de déployer une nouvelle version, lors du test n'oubliez pas de regarder l'heure de l'exécutable. Si le programme remonte à cinq heures alors que vous venez juste de compiler, il y a un truc qui cloche.

    Avec les caractères utilisés pour l'affichage, loin d'être suffisants pour mes petits yeux, l'explication peut aussi être que je n'ai pas fourni la bonne réponse à la demande de confirmation pour le remplacement.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Points : 1 874
    Points
    1 874
    Par défaut
    Avez-vous essayer d'ouvrir une console DOS, et lancez le programme manuellement. Puis regarder si des messages d'erreurs apparaissent dans la console.

  4. #4
    Membre chevronné
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    1 984
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 1 984
    Points : 2 028
    Points
    2 028
    Par défaut
    Bonsoir,

    Excellente remarque, j'ai essayé l'instruction Console.WriteLine, mais rien n'apparaissait.

    Mais il est vrai qu'en application console je n'obtenais rien de convaincant comme envoi de touches aux fenêtres, donc j'ai essayé ça à partir d'une application WinForms.

    Pour afficher une console à partir d'une application WinForms j'ai bien essayé System.Console à partir des NuGets, comme il m'a été suggéré dernièrement, mais je ne maîtrise pas encore bien l'emploi de ce composant, et le fin du fin serait de pouvoir afficher sur la fenêtre appelante comme une application console, mais je ne suis pas encore sûr que ça soit possible.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    995
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 995
    Points : 1 449
    Points
    1 449
    Par défaut
    ce n'était pas la demande de binarygirl.
    Sa demande, c'était: tu ouvres une invite de commande sur le PC et tu lances ton application depuis celle-ci pour voir si ça te sors des messages d'erreur ou autre dans l'invite de commande.


    Sinon dans visual studio, dans les propriétés du projets, tu as une partie pour la publication, tu es passé par cette étape et c'est le résultat que tu as copier sur l'autre PC ?

  6. #6
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 753
    Points : 10 687
    Points
    10 687
    Billets dans le blog
    21
    Par défaut
    A voir également dans l'observateur d'événements s'il y a quelques choses concernant l'application et son lancement.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  7. #7
    Membre chevronné
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    1 984
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 1 984
    Points : 2 028
    Points
    2 028
    Par défaut
    Citation Envoyé par umfred Voir le message
    ce n'était pas la demande de binarygirl.
    Sa demande, c'était: tu ouvres une invite de commande sur le PC et tu lances ton application depuis celle-ci pour voir si ça te sors des messages d'erreur ou autre dans l'invite de commande.
    C'était sa proposition, en effet.
    Et j'ai adapté ma réponse à la situation, en disant où j'en suis de l'utilisation de la console, ce qui est effectivement un sujet intéressant à approfondir maintenant que le premier sujet est résolu.

    Si jamais la discussion n'apparaît pas suffisamment claire, au besoin j'ouvrirai un nouveau fil.

    Sinon dans visual studio, dans les propriétés du projets, tu as une partie pour la publication, tu es passé par cette étape et c'est le résultat que tu as copier sur l'autre PC ?
    En plus de l'utilisation de la console, je crois que je ferais bien de faire une petite révision sur les options de publication et leurs avantages respectifs.

  8. #8
    Membre chevronné
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    1 984
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 1 984
    Points : 2 028
    Points
    2 028
    Par défaut
    Citation Envoyé par François DORIN Voir le message
    A voir également dans l'observateur d'événements s'il y a quelques choses concernant l'application et son lancement.
    En effet, quand j'obtiens des réactions imprévues (ou une absence imprévue de réaction), je regarde l'observateur d'événements pour avoir une idée de ce qui s'est passé.

    Dans le cadre du sujet de ce fil, je n'ai rien trouvé à l'heure d'exécution, en tout cas dans les journaux Windows et Applications.

  9. #9
    Membre chevronné
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    1 984
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 1 984
    Points : 2 028
    Points
    2 028
    Par défaut
    Pour rappel, j'ai une application qui fait bien le boulot sur les deux machines, mais elle porte un nom exotique, alors j'ai voulu refaire le développement depuis le début dans le but d'avoir quelque chose de propre.

    À cette occasion j'ai fait quelques découvertes :
    • le réseau y met le temps, mais il finit par remplacer les fichiers ; il faut juste éviter de lancer l'ancienne version avant que ça soit fait
    • dans certaines applications (qui ne fonctionnent que sur la machine de développement), l'explorateur d'objets fait apparaître deux objets SendKeys : un dans System.Windows.Forms, un dans Microsoft.VisualBasic.Devices.Keyboard ; un jour je regarderai comment ça se goupille. Ce n'est pas immédiat, car par défaut on utilise le SendKeys de System.Windows.Forms, qui du coup est présent sur les deux machines. Et pourtant à destination ça ne fonctionne pas.
      Je n'ai vu ces deux références que dans l'explorateur d'objets, pas dans le nœud références de l'explorateur de solutions
    • je viens de tenter une application en WinForms Framework : elle peut afficher des messages sur les deux machines (un progrès par rapport à plusieurs autres, qui n'ont pu que changer le curseur de souris) en revanche FindWindow ne trouve pas la fenêtre Numpad, que ce soit en mettant null ou "" pour la classe. Encore un peu de mystère.
    • correctif au sujet de la fenêtre non sélectionnée : le problème était entre la chaise et le clavier. J'ai cru un instant devoir mettre des virgules entre les paramètres comme pour des fonctions, mais pour la ligne de commandes, comme disait quelqu'un de célèbre dans les forums, "c'était une conceté".


    Ah, mais alors ... du coup, maintenant, j'ai une application SendKeysFW qui fonctionne sur la machine d'utilisation, et que j'ai testée avec Numpad et avec PicPick.
    Hum, à préciser avec les yeux en face des trous, mais ça pourrait bien être bon.

    Ah oui à tester en chaîne, aussi, car une application qui fonctionne individuellement peut poser problème insérée dans une chaîne de traitement. Un numéro d'erreur est dédié aux erreurs dues "à d'autres causes que les arguments". Cela étant, je me suis ramassé ça pour avoir fourni un chemin inexistant sur la machine.

    ***
    Pour finir ça y est, ça m'a pris plus longtemps que prévu, mais la session démarre avec un écran propre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ Tomcat ] Problème de déploiement sous tomcat
    Par Seb78 dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 28/10/2004, 12h35
  2. [JOPE] Problème de déploiement
    Par Nuncyco dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 27/09/2004, 21h57
  3. [EJB] Problème de déploiement
    Par Aurore M dans le forum Java EE
    Réponses: 5
    Dernier message: 04/06/2004, 16h37
  4. [TOMCAT] SOAP - Problème de déploiement
    Par seawolfm dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 21/10/2003, 13h36
  5. [CR][VB]Problème de déploiement
    Par pvil dans le forum SDK
    Réponses: 3
    Dernier message: 16/08/2002, 08h39

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