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
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.
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.
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.
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.
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?
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.