Executer un programme vb.net sans installer le framework

Signaler
Messages postés
10
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
1 décembre 2011
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjours à tous.

Je suis en train de passer (enfin) de vb6 a vb.net (express 2010).
Globalement je retrouve ce dont j'ai besoin mais je butte sur un point et je n'ai pas trouvé de réponse sur le forum.

En vb6 pour utiliser un programme sans pour autant installer les runtime vb6 sur le pc, il me suffisait d'inclure les dll utilisées par ce programme dans le même dossier que l’exécutable vb6 et ça fonctionnait.

Par contre en vb.net je n'ai pas trouvé comment inclure les dll pour que l'exe fonctionne sans installer le framework.

Donc la question pour résumer:
Est-il possible d'indiquer a un programme en vb.net à quel endroit il doit chercher les dll nécessaire a son fonctionnement ?

Merci d'avance

15 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Tu as tout compris.
Le setup d'installation devra contenir le FrameWork (pour le cas ou non présent chez le client) qui ne sera utile et installé que si encore absent.
Cela donne en effet au client qui n'y connaît pas grand-chose une impression assez désagréable de lourdeur.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient

Salut,

Pour vb2010 tu dois installer le DotNetFx4.0, et toutes tes applications vont fonctionner.

Regarde ICI

Cordialement



CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
Pas possible, joues en C si tu veux des exe transportables.

le Framework installé sur beaucoup de machines de nos jours, merci Windows Update

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Bonjour,
En vb6 pour utiliser un programme sans pour autant installer les runtime vb6 sur le pc, il me suffisait d'inclure les dll utilisées par ce programme dans le même dossier que l’exécutable vb6 et ça fonctionnait.


Non ! un exe VB6 n'a pas seulement besoin des dépendances de l'appli, mais également des Runtimes de VB6 ! Si tes exe "tournaient", cela veut dire que tu les installais ainsi sur une machine ou ces runtimes étaient déjà présents !
C'est pareil avec VB.Net (si le framework est déjà présent, tu peux faire de même, mais si absent, il faut l'installer, pardi)
C'est la raison pour laquelle il est nécessaire de passer par l'utilisation d'un programme de création de Setup qui, lui, fera le nécessaire "sur constat" de ce qui existe sur la machine.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
10
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
1 décembre 2011

Bon merci des réponses j'ai due mal m'exprimer
Quand je fait un programme en vb6 si je met dans le dossier d'installation de ce programme les dll vb6 necessaire a ce programme il ce lance sans l'installation des runtime complète.
par exemple voia le contenu d'un dossier d'un de mes programme vb6 qui tourne sous windows 2000 sans runtime d'installées:
SDPCPL.exe
COMDLG32.dll
MSCOMCTL.dll
MSVBVM60.dll

j'aimerai pouvoir faire la même chose en vb.net, rajouter les dll nécessaire dans le dossier d'installation du programme afin que le programme ne nécessite pas a proprement parler d'installation des runtime vb.net 2010

Merci ^^
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Quand je fait un programme en vb6 si je met dans le dossier d'installation de ce programme les dll vb6 necessaire a ce programme il ce lance sans l'installation des runtime complète.
par exemple voia le contenu d'un dossier d'un de mes programme vb6 qui tourne sous windows 2000 sans runtime d'installées:

Non ! relis donc ma réponse à ce sujet !

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
10
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
1 décembre 2011

Je viens de tester sous virtualbox, une installation de windows 2000 (sans sp sans runtime vb6) et mon programme vb6 tourne très bien.

les fichiers COMDLG32.dll, MSCOMCTL.dll et MSVBVM60.dll font bien partit du pack redistribuable des runtimes vb6, j'ai juste placé les dll dans le dossier de mon programme pour qu'il les trouve ...

donc soit on ne se comprend pas, soit windows 2000 sans aucun service pack a déjà les runtime vb6 d'installées (mais si telle était le cas mon programme tournerai sans les dll nommées... et ce n'est pas le cas).

merci encore
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
On ne se comprend définitivement pas et je ne sais quel vocabulaire utiliser, que tu "comprendrais" !
Fais donc une recherche de VB6fr.dll (si version française) et constate !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
OK ?
Puis va donc vite lire C E C I. Tu parais en avoir sacrément besoin, de cette lecture.

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
10
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
1 décembre 2011

Pas de vb6fr.dll ni de vb6.dll (version française de windows 2000 mais anglaise de VB6 donc la dll a peut-être un autre nom ?)
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
6
Bonjour suzuki,

Tu écris :



Bon merci des réponses j'ai due mal m'exprimer
Quand je fait un programme en vb6 si je met dans le dossier d'installation de ce programme les dll vb6 necessaire a ce programme il ce lance sans l'installation des runtime complète.



Mais non, t'as dû mal lire les réponses !

VB6 a déjà avec l'OS de quoi fonctionner, enfin, presque, c'est pour ça qu'il tourne, voir sans mettre grand chose, sans doute au moins vb6fr... voire sans rien mettre car parfois en téléchargement d'un programme X (heu... Z) peut te mettre ce qu'il faut sans rien dire, et ensuite ça tourne, et toi tu crois que ça tourne tout seul, question de foi en somme...

Quant à la framework, il me semble bien qu'elle est présente sur tous OS installés (Vista, Seven, height... twenty-one...), alors je ne vois même pas pourquoi tu en parles, à moins que tu aies un ordinateur à péales ?

Mais évidemment si tu es sous windows 2000 et en anglais, c'est plus spécial, peut être que dans ls forums anglais d'Australie ils savent... Car en installant vb10 (via le Net donc), il est même curieux qu'il n'ait pas installé une frameWork... A moins que, tu veuilles installer une application vb10 sur un autre PC qui ait windows 2000, sait-on jamais, là c'est certain que...

In fine, je ne rois pas que ce soit un "run-time", car vb6 semble plutôt compilé...

Cordialement, Joe.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Bonjour EhJoe
In fine, je ne rois pas que ce soit un "run-time", car vb6 semble plutôt compilé...

Détrompe-toi. Un exe VB6 a, pour tourner, besoin du Runtime VB6, qui contient essentiellement :
Vb6fr.dll ' pour la version française (peut-être VB6en.dll pour l'anglaise ?)
COMCAT.DLL
asycfilt.dll
STDOLE2.TLB
msvbvm60.dll
OLEAUT32.DLL
OLEPRO32.DLL
plus, le cas échéant, les dépendances propres à l'application (dont les dll et ocx utilisés)

Et un exe VB.Net, du framework VB.Net



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
6
Bonjour ucFoutu,

Ça m'agace ces fautes, mes yeux, y pourraient pas mettre un correcteur dans le forum ... bref ...

J'entendais par run-Time "moteur d'exécution", c'est à dire la différence entre interprêté comme vbA et exécuté comme vb6.

Non, les OLE tu peux les jeter, ce que je fais toujours, sauf si tu as une BDD...

Cordialement, Joe.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Tu n'y vas pas "avec le dos de la cuillère", toi
Je suppose que tu ne t'es jamais servi d'objets OLE "embedded" (entre autres) .


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
10
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
1 décembre 2011

Merci de toutes vos réponses.

Donc si je résume.
Je fait un petit programme en vb.net 2010 qui fait 250ko.
Je le distribue (via un installeur nsis).

Il est strictement impossible de l’exécuter sur un pc qui n'a pas le framework .net 4 d'installé et cela quel que soit les dll que j'inclus dans mon installeur ?

Je trouve cela très dommage car un programme qui fait moins de 1mo avec l'installeur, nécessite le téléchargement d'un framework complet qui fait prêt de 45mo.
Je pensait qu'on pouvait simplement inclure le "moteur" du framework et les dépendances utilisées par le programme ce qui du coup rendrai le tout beaucoup plus léger.

Du coup pour des programmes simples et qui doivent être distribués facilement, le vb.net est a mon sens limité par rapport au vb6 (qui lui n'a que 1 mo de runtime).

Je suppose qu'il n'y a du coup aucun moyen officiel de rendre un exe vb.net portable ? (j'ai lus des méthodes qui consistent a l'aide d'un programme tiers a "compiler" les exe vb.net pour les rendre indépendant du framework)

Merci a tous