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

Windows Forms Discussion :

Exécutable et framework


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 94
    Points : 41
    Points
    41
    Par défaut Exécutable et framework
    Bonjour à tous,

    Je viens de réaliser une application utilisant la class serialport (System.IO.Ports ) issue du framework 4 : http://msdn.microsoft.com/en-us/libr...VS.100%29.aspx

    1. L'application fonctionne correctement sur le poste sur lequel est installé Microsoft Visual Basic 2010 Express.... normal
    2. Si j'extrais le .exe du dossier bin, cela fonctionne également.... normal

    En revanche si je teste l'application sur un autre poste (sp2, sans frameweork ou alors le 1.1) cela ne fonctionne pas.... normal

    Sur ce poste qui n'a pas été mis à jour, j'ai du installer pack SP3 qui contient windows intaller (v2) qui semble nécessaire pour l'installation du framework 4.

    Quelles seraient les solutions à envisager pour que cette application fonctionne quelles que soient les mises à jour installées?

    Suis-je obliger de joindre à mon application qui fait quelques kilos le pack sp3 et le framework 4, c'est à dire l'utilisation d'un cédérom?

    Est-il possible d'extraire la class serialport du framework et d'en faire une dll à joindre à l'application? (là je dis n'importe quoi?)

    Suis-je obliger de tout réécrire en C++?

    Merci à vous

    Cordialement
    Lio

  2. #2
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    Bonjour lio59
    La apparement tu n'as pas le choix.

    Suis-je obliger de joindre à mon application qui fait quelques kilos le pack sp3 et le framework 4, c'est à dire l'utilisation d'un cédérom?
    1/si tu fais ca tu doit mettre à niveau le poste client.Si ca ne perturbe pas l'environnement client bien sur.

    2/tu peux essayer aussi l'inverse: adapter l'appli à l'environnement client.
    "DownGrade" ton application en installant net framework 1.1 chez toi et en recompilant ton appli en version net framework 1.1 pour ce poste client.

    Dilemne Cornelien pour ne pas dire Shakespearien..........
    bon code..................

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par lio59 Voir le message
    Quelles seraient les solutions à envisager pour que cette application fonctionne quelles que soient les mises à jour installées?
    Aucune. Ca n'a rien d'anormal qu'un application ait des pré-requis pour s'exécuter ; s'il faut mettre à niveau la machine, fais-le.

    Citation Envoyé par lio59 Voir le message
    Suis-je obliger de joindre à mon application qui fait quelques kilos le pack sp3 et le framework 4, c'est à dire l'utilisation d'un cédérom?
    Si le poste où tu installes l'application a accès à Internet, tu peux te contenter d'inclure un bootstrapper qui téléchargera et installera le framework. Le bootstrapper n'est pas très gros (moins d'1M), donc ça ne devrait pas être un problème. Sinon, l'installeur complet ne pèse que 48M, ce qui est rarement considéré comme "lourd" de nos jours...

    Citation Envoyé par lio59 Voir le message
    Est-il possible d'extraire la class serialport du framework et d'en faire une dll à joindre à l'application? (là je dis n'importe quoi?)
    Non, tu ne peux pas extraire un classe du framework, en tous cas pas sans faire de (très) grosses bidouilles. De toutes façons, ce n'est sûrement pas la seule classe du .NET Framework que tu utilises... il faudrait donc que tu fasses pareille pour les classes Object, String, Form, Button, etc. Tu n'en sortirais pas...

    Par contre, la classe SerialPort n'est pas nouvelle en .NET 4, elle existe depuis la première version de .NET. Donc si tu n'utilises pas de fonctionnalités spécifiques à .NET 4, tu pourrais modifier ton appli pour qu'elle cible une version plus ancienne du framework (la 2.0 par exemple ; les versions actuelles de Visual Studio ne permettent plus de cibler le 1.1)

    Citation Envoyé par lio59 Voir le message
    Suis-je obliger de tout réécrire en C++?
    Euh
    Si tu es maso, oui

  4. #4
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Pourquoi ne pas faire simplement un projet de déploiement ?

    Le programme d'installation (qui fait autour de 1 Mo si je ne m'abuse) va vérifier la configuration de la machine, et proposer de mettre à jour depuis internet si besoin.
    On ne jouit bien que de ce qu’on partage.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 94
    Points : 41
    Points
    41
    Par défaut
    Bonsoir à tous!

    Merci pour vos différentes réponses....

    Effectivement, il faut que les différents postes soient mis à jour.... Ce n'est pas toujours le cas... Vous devez déjà avoir entendu : "Euhhh elle march'pas ton appli... regarde.... "
    La réponse étant évidente "Benn, faut mettre à jour..."
    Et la suite... "Ouaiiii, faut faire tous ces trucs, regarde là, le logiciel fonctionne bien avec le port série et y'a pas b'soin d'installer tes... comment tu dis? Tramay? .. Femmework?..." Bref....

    J'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Imports system
    Imports System.IO.Ports ".NET Framework 2.0"
    Imports System.Threading ".NET Framework 2.0"
    Imports System.Diagnostics ".NET Framework 2.0"
    Imports System.IO ".NET Framework 2.0"
    ".NET Framework 2.0" veut dire à partir de 2.0

    Ma question est donc, comment voir si le l'appli tourne sur un Framework 2.0?
    Non, ne rigolez pas.... La réponse serait :
    Propriétés du projet/Compiler/Options avancées de compilation? Je vais tester....
    Pour le déploiement, avec la version express 2010, il faut faire :
    Propriétés du projet/Compiler/L'application est également disponible hors connexion/ composants requis/Microsoft NET Framework...
    ET
    Propriétés du projet/Compiler/L'application est également disponible hors connexion/ options/Déploiement (je ne mets aucune adresse..., non?)

    Je viens d'essayer un extrême -> framework 2.0
    Alors j'ai 10 avertissements que je ne comprends pas bien et pourtant l'appli semble fonctionner...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Avertissement	3	impossible de résoudre la référence primaire "System.Core", qui est un assembly framework, dans le framework actuellement ciblé. ".NETFramework,Version=v2.0". Pour résoudre ce problème, supprimez la référence "System.Core" ou reciblez votre application vers une version de framework qui contient "System.Core".	WindowsApplication_lecture
    Avertissement	5	impossible de résoudre la référence primaire "System.Data.DataSetExtensions", car elle a une dépendance indirecte sur l'assembly Framework "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" qui n'a pas été résolu dans le framework actuellement ciblé. ".NETFramework,Version=v2.0". Pour résoudre ce problème, supprimez la référence "System.Data.DataSetExtensions" ou reciblez votre application vers une version de framework qui contient "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".	WindowsApplication_lecture
    Avertissement	7	impossible de résoudre la référence primaire "System.Data.DataSetExtensions", qui est un assembly framework, dans le framework actuellement ciblé. ".NETFramework,Version=v2.0". Pour résoudre ce problème, supprimez la référence "System.Data.DataSetExtensions" ou reciblez votre application vers une version de framework qui contient "System.Data.DataSetExtensions".	WindowsApplication_lecture
    Avertissement	4	impossible de résoudre la référence primaire "System.Xml.Linq", car elle a une dépendance indirecte sur l'assembly Framework "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" qui n'a pas été résolu dans le framework actuellement ciblé. ".NETFramework,Version=v2.0". Pour résoudre ce problème, supprimez la référence "System.Xml.Linq" ou reciblez votre application vers une version de framework qui contient "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".	WindowsApplication_lecture
    Avertissement	6	impossible de résoudre la référence primaire "System.Xml.Linq", qui est un assembly framework, dans le framework actuellement ciblé. ".NETFramework,Version=v2.0". Pour résoudre ce problème, supprimez la référence "System.Xml.Linq" ou reciblez votre application vers une version de framework qui contient "System.Xml.Linq".	WindowsApplication_lecture
    Avertissement	2	L'espace de noms ou le type spécifié dans les Imports 'System.Linq' au niveau du projet ne contient aucun membre public ou est introuvable. Vérifiez que l'espace de noms ou le type est défini et qu'il contient au moins un membre public. Vérifiez que le nom de l'élément importé n'utilise pas d'autres alias.	WindowsApplication_lecture
    Avertissement	1	L'espace de noms ou le type spécifié dans les Imports 'System.Xml.Linq' au niveau du projet ne contient aucun membre public ou est introuvable. Vérifiez que l'espace de noms ou le type est défini et qu'il contient au moins un membre public. Vérifiez que le nom de l'élément importé n'utilise pas d'autres alias.	WindowsApplication_lecture
    Avertissement	8	Le composant référencé 'System.Core' est introuvable. 	
    Avertissement	10	Le composant référencé 'System.Data.DataSetExtensions' est introuvable. 	
    Avertissement	9	Le composant référencé 'System.Xml.Linq' est introuvable.
    Désolé pour tout ce texte....

    Pensez-vous que je peux tenter la framework 2.0?

    Merci
    Cordialement
    Lio

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par lio59 Voir le message
    Propriétés du projet/Compiler/Options avancées de compilation? Je vais tester....
    En VB je sais pas... en C# c'est dans l'onglet Application
    EDIT: Apparemment c'est ça : http://msdn.microsoft.com/fr-fr/library/bb398202.aspx

    Citation Envoyé par lio59 Voir le message
    Pour le déploiement, avec la version express 2010, il faut faire :
    Propriétés du projet/Compiler/L'application est également disponible hors connexion/ composants requis/Microsoft NET Framework...
    ET
    Propriétés du projet/Compiler/L'application est également disponible hors connexion/ options/Déploiement (je ne mets aucune adresse..., non?)
    Alors là je sais pas du tout, j'utilise jamais le système de déploiement de VS
    Mais je ne pense pas que tu aies besoin de toucher à ça pour changer le framework cible...

    Citation Envoyé par lio59 Voir le message
    Alors j'ai 10 avertissements que je ne comprends pas bien et pourtant l'appli semble fonctionner...
    Ce sont des références à des composants de .NET 3.5, mais comme tu ne les utilises pas ça fait seulement des avertissements. Tu peux enlever ces références et ces Using.

    Et donc oui, tu peux cibler le 2.0 sans problème !

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 94
    Points : 41
    Points
    41
    Par défaut
    Bonsoir à tous,

    Partie 1:

    J'ai fait tourner l'appli sous la framework 2.0, à la compilation pas d'erreurs juste quelques avertissements citées dans le message précédent

    Je suis allé dans :
    Propriétés du projet/Compiler/Options avancées de compilation/Framework cible (toutes les configurations)

    Ai
    - sélectionné : "Framework 2.0"
    - compilé le projet
    - extrait le ".exe" du répertoire "debug"
    - placé ce fichier .exe sur un autre pc

    et là message erreur " ... runtime...."

    J'avais, pour le test 1 de l'appli., installé le framework client 4.0 car l'appli fonctionnait sous la version 4.

    Et maintenant erreur....

    Donc, je télécharge et installe le framework 2.0 et là cela fonctionne.

    Si une version de framework ultérieure à celle utilisée par l'appli est installée sur le pc, l'appli ne fonctionne pas, est-ce normal?

    Qui en peut le plus en peut le moins, non?

    Le pc recherche uniquement la version spécifiée dans les propriétés et indique une erreur d'exécution bien qu'une version de framework plus récente soit installée?

    Donc, je ne sais quoi faire autant spécifier une version 4, non? Ou alors la majorité des pc, mis à jour, ont la version 2.0?

    Partie 2
    Dans l'onglet "Publier" des propriétés du projet, je sélectionne le bouton "composants requis" et là je ne vois pas "framework 2.0" affiché, mais il y a un lien permettant de télécharger le composant que l'on souhaite définir
    le lien : http://msdn.microsoft.com/fr-fr/vstudio/bb898654
    Que dois-je faire?
    - Télécharger en sélectionnant le lien "Download installer" de ".NET Frameworks 2.0 SP2 and 3.0 SP2 bootstrapper packages?
    - exécuter le prog d'installation de ce que je viens de télécharger et redémarrer visual studio, ainsi j'aurai d'autres composants requis?

    Si quelqu'un à l'expérience, je suis preneur....
    Merci...
    Lio

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par lio59 Voir le message
    Si une version de framework ultérieure à celle utilisée par l'appli est installée sur le pc, l'appli ne fonctionne pas, est-ce normal?
    C'est pas exactement ça... par exemple, avec le framework 3.5 installé, une appli développée sur 2.0 fonctionnerait, parce que c'est le même CLR (Common Language Runtime). Mais en 4.0, le CLR a changé, et ne sait pas exécuter les applications 2.0. Il me semble qu'il y a une version de l'installeur 4.0 qui installe aussi les versions antérieures...

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 94
    Points : 41
    Points
    41
    Par défaut
    Merci tomlev pour l'explication!

    Pour un troisième test, j'ai publié un "setup.exe" sous framework 3.5 client...

    Alors je me permets 2 nouvelles questions...
    Créer un dossier avec un setup.exe permet d'informer l'utilisateur du framework à utiliser, est ce bien cela?
    D'où la différence entre créer un setup et extraire l'appli.exe du dossier debug?

    Encore merci
    Lio

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par lio59 Voir le message
    Créer un dossier avec un setup.exe permet d'informer l'utilisateur du framework à utiliser, est ce bien cela?
    D'où la différence entre créer un setup et extraire l'appli.exe du dossier debug?
    Je comprends pas trop ta question en fait... tu crées un setup pour installer l'application, et installer le framework si nécessaire. Tu n'as pas à l'informer de quoi que ce soit, de toutes façons les 9/10e des utilisateurs ne savent pas ce que c'est que le .NET framework

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 94
    Points : 41
    Points
    41
    Par défaut
    Oui, je me suis mal exprimé...

    Si je donne le fichier .exe issu du dossier debug et que l'ordi de l'utilisateur n'a pas le bon framework, un message d'erreur apparaît et c'est tout.
    En revanche si je crée, via publier, un dossier avec un setup.exe, lors de l'install de l'appli, une boîte de dialogue apparaît informant l'utilisateur que le framework... doit être installé et l'installe automatiquement.
    Donc ma question était : les explications ci-dessus sont elles correctes ou alors je dis n'importe quoi?
    Merci
    Lio

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Oui en gros c'est ça, l'installeur va se charger d'installer les dépendances nécessaires

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 94
    Points : 41
    Points
    41
    Par défaut
    merci tomlev pour votre suivi et soutien...
    Le post me semble résolu!
    Merci beaucoup
    Lio

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/02/2011, 11h05
  2. Réponses: 4
    Dernier message: 26/11/2009, 18h19
  3. Incorporer le Framework WinDev dans l'exécutable
    Par goute dans le forum WinDev
    Réponses: 2
    Dernier message: 01/07/2009, 12h09
  4. Réponses: 2
    Dernier message: 09/06/2009, 19h31
  5. [C#] Problème exécution Framework 2.0
    Par Tips dans le forum Windows Forms
    Réponses: 6
    Dernier message: 19/07/2006, 10h17

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