je vous demande de l'aide après plus de 6h de recherche non fructueuse.
J'ai développé une application Windows form en VB.net sur Visual Studio 2010 Ultimate, lorsque je compile (F5) mon application dans Visual Studio, tout marche a merveille, je fais donc "publier" en tant qu'application exécutable seulement en ligne (je ne veux pas d'installation sur le PC) pour pouvoir exécuté l'application sur une clé USB.
Une fois sur la clé, je lance (si le framework n'est pas installé, il le fait sa c'est OK) et la j'ai une erreur.
J'utilise dans mon appli "Application.StartupPath" (dès le début) pour pouvoir récupérer entre autre la lettre lecteur de la clé, seulement il me donne le chemin d'un .exe se trouvant dans "C:\Users\monnom\AppData\Local\Apps\2.0\Z9OW6YH8.CK0\D856BK3Z.322\util..tion_3a28a371181b0a62_0001.0000_329389fed4e95ab5"
POURQUOI???
Je lance bien un exécutable se trouvant sur une clé (sa fait pareil en le mettant ailleurs), mais il m’exécute un truc qui sors de je ne sais ou qui pourtant correspond a mon application!
Pourquoi ce .exe a-t-il était créé? Pourquoi devient-il launcher principal ? comment remédier a cela siouplait aidé moi
A voir également:
Visual basic 2010 portable
Visual studio express portable - Meilleures réponses
Normal je crois, il s'installe sur C, ce qui donne :
"C:\Documents and Settings\joe\Local Settings\Apps\2.0\QZ37487O.QNG\DMXPYNAD.X9M\fich..tion_f0dd9b7d6d6f083a_0001.0000_61f8dbc8f580fd2c\NonDuLogiciel.exe"
Je ne suis pas du tout certain qu'on puisse installer ça avec l'installation MST sur une clef USB, faudrait poser la question et voir si des paramètres de configurations le permettent, notamment...
Par contre tu peux essayer avec le logiciel gratuit
INSTALL CREATOR
Sans garantie.
Autre possibilité un peu lourde, c'est d'installer vbNet sur le PC, dans ce cas, le seul fait de mettre l'exe sur la clef USB (l'exe du programme et non de l'installation) le fait tourner sur clef USB.
merci de ta réponse, mais j'ai déjà utilisé tout sa ^^ j'ai déjà testé bon nombre de commande qui son sensé me dire ou se trouve mon exécutable, seulement comme expliqué dans mon premier poste, toutes me sorte un chemin dans "AppData" alors que quand je lance mon .exe je ne suis pas du tout dans ce dossier.
C'est comme si il avait crée une copie de mon .exe en local, mais je ne sais pas pourquoi....
Public Class Form1
Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
MsgBox(My.Application.Info.DirectoryPath)
End
End Sub
End Class
Je viens de le faire, je l'ai manuellement promené sur mon disque, et il change bien d'adresse, donc en faisant ceci, et uniquement ceci dans un programme neuf, ça donne quoi pour toi ?
je tiens a dire que pour les personnes ayant la même envie que moi (lancer un programme sur une clé USB) j'ai trouvé un subterfuge pour ne pas utiliser
My.Application.Info.DirectoryPath
Voici ce que j'ai donc utiliser :
Imports Scripting
Function findLettreCLe()
Dim FSO As New FileSystemObject
Dim lecteur As Drive
Dim lettreCle As String = ""
For Each lecteur In FSO.Drives
If lecteur.DriveLetter <> "A" Then
'le lecteur est-it amovible ?
If lecteur.DriveType = DriveTypeConst.Removable Then
'le lecteur est-it prêt ?
If lecteur.IsReady And lecteur.VolumeName = "nomclé" Then
lettreCle = lecteur.DriveLetter
Return lettreCle
End If
End If
End If
Next
End Function
Il faut également ajouter la référence Microsoft Scripting Runtime à votre projet.
Cette fonction permet de trouver la lettre lecteur sur laquelle se trouve votre clé.
L’inconvénient est que si vous changé le nom de votre clé cela ne marchera plus, mais bon c'est déjà mieux que rien, on change pas le nom de sa clé tout les jours.
Ça pourra être une clef USB à partir de F
if <> A and <> B and <> C and <> D and <> E...
> ascii 69, au pire la primo-clef USB sera G
Ah, c'est bien beau de tester si c'est une clef USB, faudrait quand même préalablement réussir à l'installer sur la clef, hein
Bien que je n'ai pas compris pourquoi tu voulais le mettre sur une clef USB, cependant il existe des clefs avec mini OS, bureau, etc, celle-ci peuvent faire l'affaire (à voir), je ne me souviens plus de leur nom...
Copier l'exe ça devrait pouvoir se faire, ne pas laisser de trace du tout, avec Windows je ne suis pas convaincu...
La boucle s’effectue sur tous les lecteurs, je test le "A" au cas ou un lecteur disquette se trouve sur la machine (ce qui générai une erreur), ensuite je test si le lecteur est amovible.
Et en fait ici mon programme n'est pas "installé" sur la clé, il se comporte comme une application portable, sans installation sur les postes.
Et pourquoi faire cela, mon application est un utilitaire d'installation de programme dynamique, on clique sur un bouton et sa lance le setup de l'application voulu.
Quand on dois faire cela sur beaucoup de poste, c'est pratique d'avoir les softs sur une clé ainsi que l'utilitaire sans avoir besoin de l'installer. (et puis des contraintes dans mon entreprises m'oblige à faire ce procédé....)
et puis des contraintes dans mon entreprises m'oblige à faire ce procédé....
Je ne connais pas la compétence du responsable informatique dans ta société, mais peux te dire que je ne laisserais alors pas "passer" non plus ce que tu cherches à faire ! C'est évident
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Ah ben on peut faire le contraire, mettre le programmes sur le serveur...
Mais de toute façon, pour que l'utilisateur sache qu'il y a une clef USB pour installer des applications latentes sur le poste ou le serveur, faut bien le dire à l'utilisateur du poste, alors lui dire qu'il a un clef ou lui dire par affichage au lancement par exemple, qu'en tapant la touche Fx il peut installer quelque chose, revient au même.
Ensuite le serveur répond au poste puis installe le choix, soit directement, soit via le poste appelant...
Sauf si on t'y oblige, se balader avec des clefs... l'avantage du système client-serveur, c'est justement de tout faire par télé-transmission, et donc de supprimer les support physique et les intervention manuelles externes... Mais bon, chaquin voit midi à sa porte...