Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1143 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [Résolu] Attacher une librairie à un .exe

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Attacher une librairie à un .exe

n°1578970
jomree
Posté le 25-06-2007 à 17:48:29  profilanswer
 

Bonjour à tous,
 
J'ai un soucis avec le fichier .exe créé par visual studio (pour la suite : VS).
D'habitude, lorsque je crée un projet avec VS, une fois l'application terminée, je copie simplement le fichier .exe de VS et je l'envoie sur mon bureau par exemple.
Mais aujourd'hui cela ne fonctionne pas, et cela semble venir du fait que j'ai attaché une librairie spéciale à mon application (la librairie itextsharp.dll).
Lorsque je lance mon application depuis VS, tout va bien, mais lorsque je lance l'appli depuis le .exe et donc en dehors de VS, j'ai l'erreur suivante :

Code :
  1. impossible de charger le fichier ou l'assembly 'itextsharp, version=1.0.4.0, culture=neutral, publickeyToken=null' ou une de ses dépendances. Le fichier est introuvable.


Quelqu'un serait-il au courant de où peut venir le problème?
 
Merci d'avance  :)


Message édité par jomree le 26-06-2007 à 08:47:28
mood
Publicité
Posté le 25-06-2007 à 17:48:29  profilanswer
 

n°1578973
vadder
Prends !
Posté le 25-06-2007 à 18:10:08  profilanswer
 

t'as essayé de mettre la dll dans le même dossier que l'exécutable ?

n°1578978
jomree
Posté le 25-06-2007 à 18:20:17  profilanswer
 

Merci pour ta réponse vadder!
Effectivement, si je copie mes dll au même endroit que mon .exe, cela fonctionne.
Mais je ne pense pas que cela soit la solution, explication :
Je décide de mettre mon .exe sur mon bureau, cela n'est pas du tout pratique de devoir mettre aussi sur le bureau les dll
J'espère que tu comprends ce que je veux dire.
Ne penses-tu pas qu'il existe une solution pour attacher ces dll à l'application? (de la même façon que l'on peut attacher une icône à une application sans avoir à mettre obligatoirement l'icône dans le même répertoire que l'application)
 
En tous cas, merci pour ta réponse

n°1579029
MagicBuzz
Posté le 25-06-2007 à 20:31:15  profilanswer
 

jomree a écrit :

Merci pour ta réponse vadder!
Effectivement, si je copie mes dll au même endroit que mon .exe, cela fonctionne.
Mais je ne pense pas que cela soit la solution, explication :
Je décide de mettre mon .exe sur mon bureau, cela n'est pas du tout pratique de devoir mettre aussi sur le bureau les dll
J'espère que tu comprends ce que je veux dire.
Ne penses-tu pas qu'il existe une solution pour attacher ces dll à l'application? (de la même façon que l'on peut attacher une icône à une application sans avoir à mettre obligatoirement l'icône dans le même répertoire que l'application)
 
En tous cas, merci pour ta réponse


Sur le bureau, on met un raccourci généralement...

n°1579122
jomree
Posté le 26-06-2007 à 08:44:11  profilanswer
 

MagicBuzz a écrit :

Sur le bureau, on met un raccourci généralement...


wep, finalement, c'est ce que je vais faire...

n°1637925
bibije
euh...ben bibije...
Posté le 07-11-2007 à 04:06:08  profilanswer
 

Petite réponse lointaine pcq je passais par la...
juste pour dire que tu aurais pu aussi mettre les .dll dans windows\system32 , et la peu importe l'emplacement d'où tu execute ton fichier car lorsque les dll sont dans system32 ton prog les détecte automatiquement ;-)

n°1637929
gatsu35
Blablaté par Harko
Posté le 07-11-2007 à 05:01:41  profilanswer
 

ou bien faire un regsvr32 madll.dll (cela dépend du type de la dll bien sur)

n°1638017
ixemul
Nan mais sans blague ! ⚡
Posté le 07-11-2007 à 10:33:17  profilanswer
 

bibije a écrit :

Petite réponse lointaine pcq je passais par la...
juste pour dire que tu aurais pu aussi mettre les .dll dans windows\system32 , et la peu importe l'emplacement d'où tu execute ton fichier car lorsque les dll sont dans system32 ton prog les détecte automatiquement ;-)


 

gatsu35 a écrit :

ou bien faire un regsvr32 madll.dll (cela dépend du type de la dll bien sur)


 
En catégorie C#/.NET messieurs !
 
 
dans son cas, l'idéal quand on fait les choses bien, c'est de mettre les Assemblies dans le GAC. Et en effet, on met un raccourci vers l'exe sur le bureau pas l'Exe :)
 


---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
n°1638661
jomree
Posté le 07-11-2007 à 21:01:30  profilanswer
 

Euh... merci pour ces compléments d'informations ^_^

ixemul a écrit :

dans son cas, l'idéal quand on fait les choses bien, c'est de mettre les Assemblies dans le GAC

Euh...justement, pour faire ça proprement...  
Comment procède-t-on pour mettre une assembly dans le GAC...?
J'ai pu lire qu'il fallait exécuter la commande : "gacutil -i leNomDeMaDll.dll"
C'est tout...? en effectuant cette commande, il sait tout de suite où se trouve leNomDeMaDll.dll dans mon pc?
Je veux dire par là, il ne faut pas indiquer l'endroit où se trouve leNomDeMaDll.dll pour que celle-ci soit copiée dans le GAC?
Merci pour les infos ;-)


Message édité par jomree le 07-11-2007 à 21:01:45
n°1638889
ixemul
Nan mais sans blague ! ⚡
Posté le 08-11-2007 à 11:20:22  profilanswer
 

Alors, dans l'ordre :
 
une appli va chercher :
- Dans le repertoire de l'application
- Dans le Global Assembly Cache(GAC)
- Dans c:\Windows (enfin, le repertoire d'install de windows)
- Dans c:\Windows\System32
 
les 2 derniers étant à proscrire en .NET [:dawao]
 
Pour mettre une assembly dans le GAC, il faut impérativement que celle-ci posseède un Nom "Fort". Sous ce terme barbare se cahce simplement une action à effectuer qui est le signe de l'assembly. ceci se fait à l'aide de la commande "SN" dans la console Visual studio. il te faut donc générer à l'aide de cette commande un fichier snkey.snk que tu utilisera ensuite pour "Signer" ton assembly. Ainsi signée, tu pourra l'ajouter à l'aide de la commande "GacUtil".
 
Cette opération est nécessaire car elle permet d'éviter les conflits de version entre assembly, à savoir, tu pourra retrouver plusieurs fois la même assembly dans le GAC avec des N° de version différents. Sachant que lorsque tu référence une assembly signée dans un projet, seule la version utilisée pour le référencement ne pourrat être utilisée.
 
Enfin, le sujet est assez vaste, je ne saurais trop te conseiller de rechercher sur google afin de comprendre mieux ces mécanismes ;)


---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [Résolu] Attacher une librairie à un .exe

 

Sujets relatifs
[Résolu]Soucis avec la methode PAST[Resolu] espace blanc entre le bord d'une image et la fenetre !
[RESOLU] Je crois que c'est absolument incroyable, mais pas sûr...[Resolu] 1 erreur de validation XHTML 1.0
[Javascript - URGENT] traitement de chaine de caractère - Résolu[RESOLU]javascript + variable
[resolu]$_GET avec variable contenant des espaces[RESOLU] librairie C pour le buzzer pc ? fonction frequence ?
[html] problème d'affichage selon la résolution[resolu] 
Plus de sujets relatifs à : [Résolu] Attacher une librairie à un .exe


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR