Probleme déploiement VB.NET sur un Shell()

Signaler
Messages postés
16
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2008
-
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
-
Bonjour à tous,

J'ai une appli VB.NET qui exploite des tas de programmes (en vc++) selon sur quels boutons on clique. J'ai ajouté à mon appli en tant "qu'élement existant" tous les .exe dont j'ai besoin. A cela j'ai ajouté mes fichier de données à exploiter. Mais quand j'installe mon appli sur un autre ordinateur, au moment de l'appel d'un programme, l'application bug et me renvoie :

************** Exception Text **************
System.IO.FileNotFoundException: File not found.
at Microsoft.VisualBasic.Interaction.Shell(String PathName, AppWinStyle Style, Boolean Wait, Int32 Timeout) //voir pathname ci-après
at ConsoleApplication1.Dialog1.Button9_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.42 (RTM.050727-4200)
CodeBase: file:///c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
Super Awesom-O
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///D:/Profiles/cmm_admin/Param%E8tres%20locaux/Apps/2.0/GW9Z0W1J.RYK/G9032CG6.Y3J/supe..tion_02477c842902e1c7_0001.0000_58ebb10a9fdff816/Super%20Awesom-O.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.42 (RTM.050727-4200)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.42 (RTM.050727-4200)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.42 (RTM.050727-4200)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
Microsoft.VisualBasic
Assembly Version: 8.0.0.0
Win32 Version: 8.0.50727.42 (RTM.050727-4200)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------

Ma ligne 129 étant : Shell("Extraire_variables_1.exe")

Programme qui commence par : (en vc++)
int main(){
cout<<"Le problème vient de moi"<<endl;
......

Phrase qui n'apparait pas dans la CLI, ce qui signifie que le problème est vraiment directement lancé par l'appel du Shell.
Je ne sais pas d'ou ca vient, c'est le premier applicatif que je déploie et là je bloque.
Si vous avez des idées, je suis tout ouïe, merci d'avance.

!(life)

22 réponses

Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
1 es tu sur que tu as déplyé tous les programmes (*.exe) dont tu as besoin
2 dans quel path
3 quelle est la ligne de code qui pose problème ?? ( si si ça peut aider)

Bonjour chez vous !
Messages postés
16
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2008

!(life)

Voila l'archi du projet. Comme tu peut le voir la fonction Extraire_variables_1.exe doit se situer avec Super Awesom-O.exe (j'ai vérifié en explorant les fichiers).

La ligne qui lance l'exception est la suivante :
ligne 129 : Shell ("Extraire_variables_1.exe")

Sur mon poste, aucune erreur est lancé, mais sur un autre oui. Afin de vérifier que l'adressage relatif ainsi effectué était valide, avant l'instruction shell, je crée des fichiers textes dans le répertoire courant, qui s'avere bien être celui supposé.
Donc je ne vois pas ou est le problème : Pourquoi un "file not found"? Ca blesse mon égo de ne pas pouvoir trouver, mais je quitte cette boîte bientot et je n'ai pas envi de laisser un programme utilisable que sur un poste... :s
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
"[file:///d:/uti/8606030f/personnel/Mes%20images/archi.bmp file:///d:/uti/8606030f/personnel/Mes%20images/archi.bmp]" ça c'est l'image ?? j'ai pas accès à ton disque dur d'ici !

donne la ligne de CODE

Bonjour chez vous !
Messages postés
16
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2008

Aucune des fonctionnalités offertes par le site pour embellir un message ne m'est accessible. Crois moi juste sur parole : tous mes .exe sont presents et exactement dans le meme répertoire que celui du programme qui les lance, donc globalement l'adressage (qui fonctionne sur mon poste) est donc simplement, si tout se passait bien : "Extraire_variables_1.exe".

La ligne de code, qui, elle aussi, fonctionne sur mon poste mais pas sur les autres est :

ElseIf ListBox3.Items.Count = 4
ThenShell(

"Extraire_variables_1.exe")Shell(

"Extraire_variables_2.exe")Shell(

"Extraire_variables_3.exe")Shell(

"Extraire_variables_4.exe")

End
IfMais bon, globalement il s'arrete au premier Shell pour lancer une "File not Found". Si tu pense avoir une idée, je te rédige un dossier précis du contexte ou je te met des printscreen de l'arborescence du programme etc que je t'envoie par mail perso. Mais la je t'avoue que j'ai énormément de mal a m'exprimer sur ce site qui agace mon fournisseur^^.

!(life)
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
1 si tu as des problemes vis à vis du site il y a des rubriques forums prévues
2 si tu veux faire aparaitre une image sur le site il faut qu'elle soit sur le net
3 si ton prog ne trouve pas ses fichiers il faut peut-être préciser le path des fichiers et non simplement leur nom


4 utilise Process.start("filepath") avec un test d'existence du fichier










Bonjour chez vous !
Messages postés
16
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2008

Pour les problèmes de site web, je pense que c'est simplement du à tous les filtres et autres contraintes qu'impose la boîte ou je travaille. Je suis un privilégié qui a un accès, mais il est très grandement limité...

Sinon normalement l'adressage en fonction de là ou se déroule le programme fonctionne et le simple nom du fichier constitue (sur mon poste en tout cas) un adressage relatif.

Mais par précaution j'avais déjà essayé avec cette ligne de code ci :

Shell(Environment.CurrentDirectory &

"" &
"Extraire_variables_1.exe")
//aussi en remplacant CurrentDirectory par StartupPath :)

//J'avais vérifier au préalable la valeur du CurrentDirectory et du Startup Path

Et cela n'a rien changé. En tout cas j'apprécie ton aide, car je t'avoue que là je suis un peu désespéré et je ne suis pas parvenu a trouver d'autre posts avec des problème de Shell() lors du déploiement. Si ca se trouve c'est un paramètre tout con a modifier, mais je ne m'y connais pas assez pour m'en apercevoir aisément

!(life)
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
teste si le fichier existe
io.File.Exists("filepath")

Bonjour chez vous !
Messages postés
16
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2008

Re,

J'ai tapé :

If

(
Not IO.File.Exists(Environment.CurrentDirectory &
"" &
"Extraire_variables_1.exe"))
ThenMessageBox.Show(

"Le chemin n'existe pas")

End
IfShell(Environment.CurrentDirectory &

"" &
"Extraire_variables_1.exe")

Aucune message Box n'a pop... Mais en fait je crois que le problème est innérent au fait d'appeler un .exe développé en Visual C++. As tu deja fait ce genre de choses? Si oui, à part générer le projet VC++, faisais tu autre chose? (une sorte d'équivalent du publier en VB.NET)
Je suis un réel ignare dans le domaine du déploiement

!(life)
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
as tu éssayé de lancer tes exe hors de ton programme???
as tu installé les run times de vc++ ??


vc++ peut faire plusieurs sortes de programmes


natifs win32   OU .net










Bonjour chez vous !
Messages postés
16
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2008

Oui ma précédente interaction vient du fait que jai tenté de les lancer hors de mon programme, et ce fut un échec :)
Run times vc++, hein quoi qu'est ce? (non je n'ai pas installé de telle choses)
J'opterais pour le natif win32
On avance à pas de géant dans ce flou intersidéral dans lequel je me positionnais, je crois que je viens de trouver mon père spirituel et cybernétique

!(life)
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
ben fais 1 setup avec vc++ il installera tous les runtimes d'un seul coup

Bonjour chez vous !
Messages postés
16
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2008

Sacrebleu j'ai installé sur mon autre pc le runtime trouvé sur msdn et cela me lance la meme erreur

!(life)
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
c'est pas sur vista par hasard?

Bonjour chez vous !
Messages postés
16
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2008

enfin microsoft download pardon

!(life)
Messages postés
16
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2008

non xp pro

!(life)
Messages postés
16
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2008

version 2002 sp2

!(life)
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
je redis fait un setup de tes appli vc++ installe le ça devrait fonctionner

Bonjour chez vous !
Messages postés
16
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2008

D'accord je fais ca demain, là je dois partir pour un rendez vous important, merci pour le temps consacré, je vous ferais part du résultat demain

!(life)
Messages postés
16
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2008

(Lendemain de soirée, si j'étais deja lent du ciboulo hier, aujourd'hui ce sera pire)

Quand tu me parle de créer un Setup, tu parles avec un truc genre Inno Setup? Si oui, ca me force à me former à ce nouveau type de langage vraiment rapidement, cela risque d'etre un petit peu tendu...

!(life)
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
regarde les dépendances de tes exe et installes les sur les machines clients

Bonjour chez vous !