VB.NET: Problème avec DLL AxWindowsMediaPlayer

[Fermé]
Signaler
Messages postés
679
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
-
Messages postés
679
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
-
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.

4 réponses

Messages postés
7467
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
2 août 2021
646
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!
Messages postés
679
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
14
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?
Messages postés
7467
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
2 août 2021
646
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
Messages postés
679
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
14
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.
Messages postés
7467
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
2 août 2021
646
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.
Messages postés
679
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
14
Effectivement, je pensais que c'était plus ou moins la même chose.
Dans ce cas, comment avoir un exécutable seul?
Messages postés
7467
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
2 août 2021
646
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.
Messages postés
679
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
14
D'accord, merci quand-même.