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

VB.NET Discussion :

Lancer une appli sur un autre ordinateur


Sujet :

VB.NET

  1. #1
    Membre actif
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Points : 275
    Points
    275
    Par défaut Lancer une appli sur un autre ordinateur
    Bonjour,

    Pour tester mon appli VB.NEt dans un autre environnement que celui de mon ordinateur (taille d'écran, système d'exploitation etc...), j'ai généré ma solution et copié le répertoire Release sur le nouvel ordi.
    Puis j'ai cliqué sur l'exécutable.
    J'ai un message d'erreur provenant d'une instruction try catch dès l'initialisation.
    "System.IO.FileNotFoundException : impossible de charger le fichier ou l'assembly 'Microsoft.VisualBasic.PowerPacks.Vs,....ou une de ses dépendances. Le fichier spécifié est introuvable"

    Microsoft.VisualBasic.PowerPacks.Vs fait partie des références utilisées de mon appli (en revanche, je ne me souviens plus à quoi ça sert et je ne me souviens pas l'avoir spécifiquement importé).

    Lorsque je lance le .exe sur mon ordinateur de développement ça marche très bien.

    Je suis un peu sec sur la façon de résoudre ce pb ; s'il s'agit d'une référence déclarée, pourquoi les fichiers nécessaires ne sont-ils pas dans le répertoire Release ? Que faut-il que je fasse ?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    Une petite recherche sur Google :
    Deploying Applications That Reference Visual Basic Power Packs
    Msdn PowerPacks
    Et une autre ici

    Bref, sur le net, il y a tout ce qu'il faut pour répondre à la question

  3. #3
    Membre actif
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Points : 275
    Points
    275
    Par défaut
    J'ai suivi les conseils de "Discussion similaire" mais maintenant j'ai une erreur à la compilation (que ce soit en debug ou en release) :"Impossible de lire le manifeste 'MyProject\app.manifest'. Elément racine manquant."

    Pour moi, c'est de l'hébreu. Même en restaurant les paramètres avant ceux conseillés par "Discussion similaire", l'erreur persiste.

    Comment se sort-on de cette situation.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    As-tu édité le fameux fichier manifest pour voir ce qui peut clocher ?

  5. #5
    Membre actif
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Points : 275
    Points
    275
    Par défaut
    C'est un fichier vide (0 Ko).
    Mais en remontant à d'anciennes sauvegardes de mon projet (la dernière datant d'hier), le fichier était identique (même date) et je n'avais pas cette erreur qu apparaît dans la liste des erreurs

  6. #6
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    @noftal :

    Un peu de lumière sur le fichier .manifest :

    http://www.developpez.net/forums/d12...p/#post7056421

    Pour ce qui concerne les dépendances, la bonne habitude à prendre lorsque tu références des librairies externes à ton projet consiste à copier les dits fichiers (*.dll) à la racine du dossier "...\Bin" et ensuite seulement tu ajoutes la références à ton projet depuis ce chemin.
    Ainsi lorsque tu copieras ton répertoire de projet les références seront toujours disponibles et lorsque tu cliqueras sur "Regénérer le projet", le répertoire Release ou Debug sera totalement rincé puis la référence sera de nouveau correctement copié depuis celle existante ("...\Bin") !

    Si tu copies une référence directement dans le répertoire Release ou Debug alors lorsque tu généreras de nouveau le projet le contenu du répertoire sera vidé puis ta solution sera régénéré ---> les références seront dès lors manquantes !!!

    A+ j'espère que j'ai pas été trop ambigu.

  7. #7
    Membre actif
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Points : 275
    Points
    275
    Par défaut
    wallace1,
    Merci pour ta réponse. C'est encore assez nébuleux pour moi

    - Concernant le app.manifest, je ne me retrouve pas dans le lien que tu m'as donné, car, en remontant dans mes anciennes sauvegardes de répertoire projet (17 au total), j'ai toujours eu un app.manifest ne contenant rien (0 Ko). en fait, il est apparu à ma 9ème sauvegarde qui correspond au moment où j'ai changé les paramètres de démarrage de mon projet (de type Windows Form) pour démarrer sur une Sub Main. Avant, ce fichier n'existait pas dans MyProject. Depuis, la date du fichier n'a pas changé.
    Donc en apparence, rien n'a changé au sujet de ce fichier jusqu'à ce jour où, en suivant les conseils donnés par ebastien, j'ai obtenu cette fameuse erreur

    - J'ai résolu mon pb en reprenant ma dernière sauvegarde qui datait d'hier. Le delta n'étant pas trop important, cela ne m'a pas pris trop de temps de recommencer les manips réalisées.

    - Concernant ton conseils sur les DLL, en PJ les références utilisées sur mon projet. Les DLL sont quelque part sur mon ordi mais pas forcément sur le \bin. Je comprends que ton conseil est utile si je veux copier mon répertoire projet pour continuer le développement sur un autre ordinateur. Le cas ne se posera pas pour moi (mais je reçois quand même ton conseil 5/5). En revanche, à partir des références utilisées, que faut-il faire pour que je puisse juste copier le répertoire Release pour tester mon appli sur un autre ordi ? Faut-il par exemple que je change les valeurs de la colonne "copie locale" pour tout mettre à "true" (comme indiqué sur un topic fourni par ebastien) avant de générer ma solution ?

    Nota : j'ai bien compris que ce n'est pas la manière académique pour "publier" mon appli, mais c'est juste pour tester. Je l'ai fait il y a une semaine ou deux avec une ancienne version et cela avait marché. Probablement, à l'époque, PowerPacks n'était pas référencé. Il a dû apparaître quand j'ai ajouté un contrôle de type "rectangle" dans mon Form ces derniers jours.
    Images attachées Images attachées  

  8. #8
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    En revanche, à partir des références utilisées, que faut-il faire pour que je puisse juste copier le répertoire Release pour tester mon appli sur un autre ordi ? Faut-il par exemple que je change les valeurs de la colonne "copie locale" pour tout mettre à "true" (comme indiqué sur un topic fourni par ebastien) avant de générer ma solution ?
    Si tu veux tester ton programme sur une autre config il faut :

    1- regarder si ton projet possède des références (encadré vert) externes (en encadré rouge) :



    2- compiler ton projet (le regénérer) :



    3- se rendre dans le répertoire de génération (Debug ou Release) selon ta config de sortie (encadré rouge) :



    4- récupérer ton ".exe" généré ainsi que les librairies référencées. Dans mon exemple plus haut ça concerne 2 fichiers ".dll" :



    NB : les références sont toujours à placer à côté de ton .exe pour que ca fonctionne ou alors il faut les embarquer en utilisant un outil comme ILMerge ou alors tout les obfuscateurs (Smart assembly, dotfuscator ...etc...) permettent de "Fusionner" les références (= fichiers .dll) à ton "Main Assembly" (= ton fichier .exe).

    A+

  9. #9
    Membre actif
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Points : 275
    Points
    275
    Par défaut
    concernant le point 1, comment distingues-tu précisément une référence "externe" des autres références ?
    Par exemple, dans mon post précédent (voir la PJ), StarRating est bien une référence externe, mais Microsoft.VisualBasic.PowerPacks.Vs ?

  10. #10
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Ta reference "Microsoft.VisualBasic.PowerPacks.Vs" ne provient pas du repertoire "Framework" mais du dossier "VbPowerpacks" ce qui laisse suggerer qu'il s'agit d'un composant additionnel (provenant d'un powerPack) !

    De plus etant donné que "Microsoft.VisualBasic.PowerPacks.Vs" a ete ajouté a ton projet depuis la fenetre ajouter une reference tu as dues sélectionner l onglet "projet" ou "Parcourir" et non l'onglet "Com" ou "Net" alors c est un composant externe.

    EDIT :

    Après avoir regardé cette référence a été installée en même temps que Visual Studio. Donc si sur le poste il n'y a pas VS il faut la mettre à coté de ton programme exécutable.

    Il suffit de regarder dans les détails du fichier :



    Lorsque c'est une référence Framework le nom du produit est : "Microsoft Framework".


    A+

  11. #11
    Membre actif
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Points : 275
    Points
    275
    Par défaut
    Merci wallace1.
    J'ai tardé à te répondre car ton dernier post me laissait dubitatif. Pour moi PowerPacks n'était pas un bibliothèque à laquelle j'avais fait spécifiquement appel.
    Comme je l'expliquais plus haut, il semble que VS2010 ait rajouté automatiquement la référence lorsque j'ai inséré un contrôle "RectangleShape" dans mon WinForm.
    Donc ta réponse, bien qu'elle me fasse progresser sur la notion de "références", me laissait un peu pantois.
    Comme tu as pu le voir, hier soir, j'ai réussi à faire fonctionner mon .exe sur un autre ordi, ce qui veut dire que j'ai en effet résolu mon pb de références. Pour cela j'ai passé la propriété Copie Locale à True pour cette référence. Ce qui m'étonne c'est que VS2010 ne l'ait pas spontanément fait en ajoutant cette référence.

    Ton EDIT lève les derniers doutes que j'avais sur ce sujet, mais je maintiens que ce n'est pas logique que VS2010 n'ait pas spontanément mis "copie locale" à true.

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/04/2009, 10h25
  2. impossible à lancer une appli sur click
    Par grimberman dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 29/05/2008, 16h02
  3. Comment lancer une appli sur une machine distante
    Par J.Michel dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 13/09/2007, 14h00
  4. [C#] impossible de lancer mon appli sur un autre PC
    Par xtream dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/09/2006, 16h40
  5. lancer une application sur un autre pc local
    Par amireve dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 08/09/2005, 22h00

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