Exécuter un programme C# sur un autre ordinateur [Résolu]

Signaler
Messages postés
65
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
8 avril 2021
-
Messages postés
15781
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 avril 2021
-
Bonjour,

Je suis rendu à la phase finale de mon programme qui est de le mettre sur d’autre ordinateur que celui qui a été utilisé pour le programmer. Je programme avec Visual Studio 2019 et lorsque je transfère le fichier exécutable sur l’ordinateur client, donc que je le copie/colle, tout va bien, mais lorsque je le lance, rien ne se produit, il n’y a aucun message d’erreur, aucune fenêtre qui apparaît et qui disparaît, il n’y a rien qui se produit, le programme ne démarre pas.

P.S. Mon programme est programmé en C# et c’est une WindowsFormApp

Merci d’avance!!!

8 réponses

Messages postés
65
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
8 avril 2021

J'ai vraiment besoin de votre aide
Messages postés
1527
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
8 avril 2021
127
Salut,

C'est étonnant que tu n'obtiennes pas de message d'erreur.

Normalement, pour tout langage, en tout cas c'est ainsi avec Python. Tu installes les modules adéquats, tu fournis le langage, les modules et le code source. Tu exécutes et ça fonctionne.
Messages postés
65
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
8 avril 2021

Moi aussi je trouve sa bizarre, mais j'ai pris le temps de décortiquer toute mon code et je sais plus ou moins mon erreur est où, dans environ 1 heure 30 je vais savoir où est mon erreur exactement et je vais t'avertir, comme ça on pourra travailler ensemble pour être capable de régler le problème.
Messages postés
15781
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 avril 2021
685
Dachiasse,

Actuellement, tu n'y connais rien en C# et ça fait plusieurs fois que tu interviens à coté de la plaque. C# c'est pas Python, sinon y'a un langage qui ne servirait à rien (enfin, si Python sert à quelque chose....)
Bon là ton intervention a été sans conséquence mais sur un précédent sujet tu as embrouillé le demandeur encore plus qu'il ne l'était. Quand on sait, on ne peut pas aider.

On est quelques un à savoir coder (Xavier, yg, HNenry, Jordanne, etc...) dans ce langage, si on a pas répondu c'est soit qu'on a pas encore vu, soit qu'on ne sait pas, soit que (comme c'est le cas présentement) la réponse demande du temps.
J'ai mis presque un heure à chercher le code, prendre les captures et rédiger le message.
Vous comprendrez tous les 2 qu'au milieu de la nuit ou en pleine journée de travail, ben non c'était pas le moment.
Messages postés
1527
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
8 avril 2021
127 >
Messages postés
15781
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 avril 2021

Je comprends. Pas de soucis. T’as bien fait de me le dire.
Messages postés
15781
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 avril 2021
685 >
Messages postés
1527
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
8 avril 2021

Ton envie d'aider est louable, mets la à profit là où tes compétences seront pleinement employées
Messages postés
15781
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 avril 2021
685
Bonsoir

quand rien ne se passe c'est souvent (mais toujours) un problème de framework.
Dans ce cas il n'y a pas de message car le logiciel n'est même pas lancé.

Je te l'ai dit précédement, il faut que le framework pour lequel tu as compilé ton logiciel (ou un framework supérieur sauf peut-être le 5) soit installé sur le PC cible.
Il faut aussi que toutes les références que tu as utilisées soient adaptées à ce framework.
Visual Studio ça ne l'embête pas de compiler ton logiciel en 4.5 (par exemple) et d'appeler une référence 4.8.

Tu trouveras toutes tes références dans l'explorateur de solution

En regardant les propriétés de chacune, tu pourras voir avec quel framework (runtime) mini elles fonctionnent.


A noter que tu travailles avec Excel, les références interop doivent aussi être compatibles avec la version d'Excel présente sur le PC cibles.

Si tout ça est correct.
Pour obtenir fichier de log à chaque erreur, même non signalée ouvre le fichier program.cs ça devrait ressembler à
using System;
using System.Windows.Forms;

namespace Test_Winform {
	static class Program {
		/// <summary>
		/// The main entry point for the application.
		/// </summary>
		[STAThread]
		static void Main(){
			Application.EnableVisualStyles();
			Application.SetCompatibleTextRenderingDefault(false);
			Application.Run(new Form1());
		}
	}
}


Tu vas ajouter quelques lignes de façon à ce que ça ressemble à ça.
Attention, l'ordre est important
using System;
using System.Diagnostics;
using System.IO;
using System.Windows.Forms;

namespace Test_Winform
{
    static class Program
    {
        /// <summary>
        /// Point d'entrée principal de l'application.
        /// </summary>
        [STAThread]
        static void Main()
        {

            // hook on error before app really starts
            AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }

        static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            string bureau = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
            string log = Path.Combine(bureau, string.Format("Log_Erreurs_{0:yyyy-MM-dd_HH-mm-ss-fff}.txt",DateTime.Now));
            File.WriteAllText(log, e.ExceptionObject.ToString());
            Process.Start(log);
        }
    }
}


Tu auras un fichier log sur ton bureau, daté à la milliseconde.

Messages postés
65
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
8 avril 2021

Merci de ta réponse, j'ai vérifier et sur les deux ordinateurs, le framework est le même, mais tu as soulevé le point de la version du logiciel Excel, dans mon cas ça pourrait être sa le problème car la version du logiciel Excel côté client n'est pas le même que sur l'ordinateur qui a été utilisé pour développé l'application. Côté client, la version est 2010 et sur l'ordinateur du développeur c'est la version 2019, est-ce que sa pourrait être sa le problème?
Messages postés
15781
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 avril 2021
685 >
Messages postés
65
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
8 avril 2021

Ça peut
Messages postés
65
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
8 avril 2021
>
Messages postés
15781
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 avril 2021

Où pourrais-je trouver la fiche technique de Interop?
Messages postés
15781
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 avril 2021
685
bonne question
Messages postés
65
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
8 avril 2021

Donc que me conseillerais-tu?
Messages postés
15781
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 avril 2021
685
Tu peux commencer par là
https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.excel?view=excel-pia

Et faire une recherche de compatibilité avec la version de tes dll
Messages postés
65
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
8 avril 2021

Donc pour régler mon problème je dois seulement changer la version de mon extension :
using Excel = Microsoft.Office.Interop.Excel;

C'est bien ça?
Messages postés
15781
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 avril 2021
685 >
Messages postés
65
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
8 avril 2021

peut être.
Mais ça peut aussi bien venir d’une autre référence où d’autre chose.
Messages postés
65
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
8 avril 2021
>
Messages postés
15781
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 avril 2021

Je pense pas parce que j'ai décortiqué mon code en plein de partie et lorsque je ne déclare pas mon fichier Excel il n'y a aucune erreur. Je te reviens avec le résultat.

Merci de ton aide :)
Messages postés
15781
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 avril 2021
685
Alors dans ce cas il faut compiler le logiciel avec les dll compatible d'Excel 2010.

C'est une des raisons (avec la lenteur) qui m'ont fait abandonner cette technique il y a plusieurs années déjà.
Messages postés
65
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
8 avril 2021

D'accord merci :)
Messages postés
65
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
8 avril 2021

Ça l'a finalement marché, j'ai seulement lancer le programme sur un ordinateur avec Excel 2016 et ça l'a fonctionné.

Merci à tout le monde de votre aide :)
Messages postés
15781
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 avril 2021
685
De rien