VB.NET: Problème avec DLL AxWindowsMediaPlayer

Fermé
Anonyme209 Messages postés 681 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 - Modifié par Anonyme209 le 24/06/2015 à 19:47
Anonyme209 Messages postés 681 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 - 26 juin 2015 à 14:14
Bonjour,

J'ai un problème avec mon application VB.NET. Je précise qu'il s'agit d'une application portable, dans le cas contraire ce problème ne me dérangerait pas.
Lorsque je rajoute un composant WindowsMediaPlayer (appelé alors AxWindowsMediaPlayer1) à mon application, il importe automatiquement les références AxInterop.WMPLib.dll et Interop.WMPLib.dll et copie les dll dans le dossier debug du projet (dans les propriétés du projet, on voit que les références sont en CopyLocal True et que cette propriété est en lecture seule).
Mon application fonctionne donc bien si ces dll sont dans le même répertoire que l'exécutable.
Cependant, si l'une de ces dll est manquante, l'application ne s'exécutera pas.
En exécution normale, rien ne se passe, et en mode débogage de Visual Studio, l'erreur suivante se produit:
Une erreur s'est produite lors de la création du formulaire. Pour plus d'informations, consultez Exception.InnerException. L'erreur est : Impossible de charger le fichier ou l'assembly 'AxInterop.WMPLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' ou une de ses dépendances. Le fichier spécifié est introuvable.
J'ai aussi un problème avec la dll UltraID3Lib.dll. Si la dll n'est pas présente, le programme se lance quand-même mais affiche un message d'erreur semblable à celui indiqué ci-avant.

C'est très embêtant de devoir copier les dll pour une application portable.
Merci de votre aide.
A voir également:

4 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
25 juin 2015 à 15:08
Bonjour,

Tu peux toujours voir de ce coté là:

https://www.microsoft.com/en-us/research/people/

Mais je pense que cela n'est pas un problème d'avoir un dossier comportant l'exe et les dll pour une application portable.

La preuve, j'ai plusieurs logiciels portables: Ccleaner, Unlocker par exemple qui ont des dossiers comportant les fichiers langues et DLL, cela ne pose aucun problème!
0
Anonyme209 Messages postés 681 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 16
25 juin 2015 à 15:43
J'ai cru comprendre que ILMerge permettait juste de fusionner plusieurs librairies.
Il faudra donc toujours au moins une dll dans le même dossier que l'exécutable, non?
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
26 juin 2015 à 08:06
Fais l'expérience suivante:
copie ton dossier Debug à un autre emplacement, tu verras que ton application est opérationnelle. Les chemins des DLL sont automatiquement changés avec CopyLocal True
Après tu n'est pas obligé de mettre tous les fichiers contenus dans le dossier Debug, tu ne mets que ceux qui sont necessaires.
Tu n'as qu'a faire un raccourci Bureau pour l'utilisateur au moment de l'installation et le tour est joué.
C'est ce que font les logiciels pro
0
Anonyme209 Messages postés 681 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 16
26 juin 2015 à 12:23
copie ton dossier Debug à un autre emplacement, tu verras que ton application est opérationnelle

Oui, c'est ce que j'ai dit: il faut que les dll soient dans le même dossier que l'exécutable, peu importe le dossier

Après, il me reste effectivement la solution de mettre l'exécutable et les dll dans un dossier et de faire un raccourci, mais ce n'est plus vraiment une application portable.
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
26 juin 2015 à 12:58
Mais si
Une application portable est une application que l'on peut mettre sur une clé USB et s'en servir sur n'importe quel PC.
Il n'y a aucune installation, elle est prête à l'emploi.
Je t'ai cité 2 applications que j'avais chargé parmi tant d'autres.
Il y a même certaines applications portables qui se servent du registre et te laissent des traces!

Tu confonds avec un exécutable seul et une application portable.
0
Anonyme209 Messages postés 681 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 16
26 juin 2015 à 13:13
Effectivement, je pensais que c'était plus ou moins la même chose.
Dans ce cas, comment avoir un exécutable seul?
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
26 juin 2015 à 14:09
Ce n'est pas possible parce qu' AxWindowsMediaPlayer crée ces DLL et en a besoin pour fonctionner.
Un fichier texte (Aide par exemple) qui est mis dans les Resources sera lisible dans l'executable sans le dossier Resources. Le dossier Resources fait parti de l'executable.
0
Anonyme209 Messages postés 681 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 16
26 juin 2015 à 14:14
D'accord, merci quand-même.
0

Discussions similaires