Exécuter un programme C# sur un autre ordinateur
Résolu
Anonyme1234_7288
Messages postés
64
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
A voir également:
- Exécuter un programme C# sur un autre ordinateur
- Comment réinitialiser un ordinateur - Guide
- Ordinateur - Guide
- Comment nettoyer un ordinateur qui rame - Guide
- Clavier de l'ordinateur - Guide
- # Sur ordinateur - Guide
8 réponses
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.
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.
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.
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.
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 à
Tu vas ajouter quelques lignes de façon à ce que ça ressemble à ça.
Attention, l'ordre est important
Tu auras un fichier log sur ton bureau, daté à la milliseconde.
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?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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à.
C'est une des raisons (avec la lenteur) qui m'ont fait abandonner cette technique il y a plusieurs années déjà.
Ç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 :)
Merci à tout le monde de votre aide :)
Bonjour Whismeril!
Tu es un patient de nature je crois! Sans trop d'indices, tu l'as désembrouillé.
J'aimerais savoir si tu as de l'expérience en C# lors de la création en Windows Service d'un bout de code qui écoute sur un port innocupé de communication (genre 30000).
J'ai fait bien des applications en Windows Forms, en Windows Service, en un peu de tout, mais là, je suis dans le brouillard. Le même code fonctionne au sein d'un Windows Forms, mais lorsque j'appelle la même fonction au sein d'un Windows Service, il s'y rend, mais ne déclenche pas lors qu'une communication débute.
Si ça te tente d'en voir un bout de tout ça, tu peux venir sur :
https://forums.commentcamarche.net/forum/affich-37178539-beginendcontext-de-httplistener-ne-reagit-pas-au-sein-d-un-service-windows
Je sais! Ce n'est pas conventionnel, mais si tu as déjà affronté le même problème, je ne perds rien de tenter le coup en te posant la question.
Passe une belle journée! :-)
Tu es un patient de nature je crois! Sans trop d'indices, tu l'as désembrouillé.
J'aimerais savoir si tu as de l'expérience en C# lors de la création en Windows Service d'un bout de code qui écoute sur un port innocupé de communication (genre 30000).
J'ai fait bien des applications en Windows Forms, en Windows Service, en un peu de tout, mais là, je suis dans le brouillard. Le même code fonctionne au sein d'un Windows Forms, mais lorsque j'appelle la même fonction au sein d'un Windows Service, il s'y rend, mais ne déclenche pas lors qu'une communication débute.
Si ça te tente d'en voir un bout de tout ça, tu peux venir sur :
https://forums.commentcamarche.net/forum/affich-37178539-beginendcontext-de-httplistener-ne-reagit-pas-au-sein-d-un-service-windows
Je sais! Ce n'est pas conventionnel, mais si tu as déjà affronté le même problème, je ne perds rien de tenter le coup en te posant la question.
Passe une belle journée! :-)
Bonjour,
je suis patient avec ceux qui sont polis et qui montrent qu'ils essayent de leur coté.
Fouille dans mes dernières intervention, tu verras que je peux aussi ne pas l'être.
Ta demande est hors charte, car, c'est un doublon de ton message initial et ça n'a rien à voir avec le thème de ce fill.
Attends toi à ce que la modération supprime ton message.
Cela dit, comme tu respectes mes 2 critères, tu as le droit à ma réponse, qui ne t'aidera pas, je n'ai jamais codé de service windows.
Il valait mieux, pour toi, que je le dise ici plutôt que polluer ta vraie question.
je suis patient avec ceux qui sont polis et qui montrent qu'ils essayent de leur coté.
Fouille dans mes dernières intervention, tu verras que je peux aussi ne pas l'être.
Ta demande est hors charte, car, c'est un doublon de ton message initial et ça n'a rien à voir avec le thème de ce fill.
Attends toi à ce que la modération supprime ton message.
Cela dit, comme tu respectes mes 2 critères, tu as le droit à ma réponse, qui ne t'aidera pas, je n'ai jamais codé de service windows.
Il valait mieux, pour toi, que je le dise ici plutôt que polluer ta vraie question.