begin process at 2010 02 10 11:40:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

UserControl

 > 

dll et chemin d'accès


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

dll et chemin d'accès

mercredi 24 mai 2006 à 00:13:55 | dll et chemin d'accès

Killan

Bonjour,

J'ai 2 répertoires, un contenant un exe avec les dll nécessaires et un autre avec des fichier dont un plugins dans un sous-rep. celui-ci à besoin d'une dll en + que j'ai placé dans le 2eme répertoire

on a donc :

rep 1:
- l'exe
- des dlls

rep 2:
-batch
-dll
---sous-rep avec le plugin sous forme dll

le batch du rep 2 lance l'exe du rep 1 avec le chemin du rep 2 en argument.

le probleme est que le plugin au chargement ne trouve pas la dll qui est dans le rep 2 (donc ça plante avec une belle exception : + _innerException {"Le fichier ou l'assembly nommé liebesstein ou l'une de ses dépendances, est introuvable." } ) (liebesstein c le nom de la dll)

j'ai pensé qu'il serait p-e possible dynamiquement d'ajouter une chemin d'accès pour que l'application cherche les dll nécessaires là où je lui dit et donc trouver la dll du rep 2 ?

avez-vous une idée ?

merci d'avance

Killan
www.daaboo.net

mercredi 24 mai 2006 à 02:16:38 | Re : dll et chemin d'accès
mercredi 24 mai 2006 à 10:12:48 | Re : dll et chemin d'accès

Killan

Je vois plus ou moins, mais si je comprend bien le truc GAC sert de config pour l'application située dans mon répertoire 1 sauf que celui ci ne doit pas savoir que le rep 2 l'appel, du moins ile doit pas avoir de config specifique, doit rester générale.

en fait c'est comme le JRE de java et une application qui l'appelle, je tente de refaire un systeme de framework spécifique, jusque là ça fonctionne bien mais faut que l'application du rep1, grâce à un argument qd il se lance, puisse ajouter dyamiquement un répertoire où chercher des dll supplémentaires.

j'espère que vous me comprennez

sinon pour aider : en fonction de ce schéma (la partie droite de l'image)  [ Lien ]

- le rep 1 est celui contenant grak.exe
- le rep 2 est celui contenant liebesstein.bat
- le plugins est dans le rep2/plugins
- la dll que le plugins à besoin est dans le rep 2 à la racine : liebesstein.dll

le truc est donc de dire quelque part pendant l'exécution de grak.exe que le rep 2 sert aussi à chercher les dll necessaire

si ça n'existe pas alors je mettrais les dll dans le rep de l'exe, mais ça serait dommage

merci à vous,

Killan
www.daaboo.net
mercredi 24 mai 2006 à 18:19:41 | Re : dll et chemin d'accès

Lutinore

Administrateur CodeS-SourceS
Réponse acceptée !

Dans le lien que j'ai donné c'est pas la solution de la GAC qui t'intéresse mais le moment ou je parle de la façon de nommer un répertoire pour permettre au chargeur d'assembly de trouver les assemblages et surtout de l'élèment Probing du fichier de configuration ainsi que de l'évènement AssemblyResolve du domaine d'application..

jeudi 25 mai 2006 à 01:45:45 | Re : dll et chemin d'accès

Lutinore

Administrateur CodeS-SourceS

Je pense que ton arborescence de répertoire est un peu compliquée, le plus simple pour une application c'est d'être contenue toute entière dans un même répertoire avec des sous-répertoires éventuellement.. ou bien partagée avec la GAC. Je te montre les deux solutions qui permettent d'indiquer le chemin au chargeur d'assembly du CLR, j'ai pas testé avec la même arborescence que toi, dl, exe etc.. essaye de voir si ça peut t'aider..


// 1 ) Le fichier *.config

// Le fichier de configuration doit porter le même nom que ton exe ( extension comprise ) + .config
// ex : MonApplication.exe.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
   <probing privatePath="CheminDeMonDossier"/>
  </assemblyBinding>
 </runtime>
</configuration>


// 2 ) L'évènement AssemblyResolve.

[ STAThread ]
static void Main( )
{
    AppDomain ad = AppDomain.CurrentDomain;
    ad.AssemblyResolve += delegate
    {
        MessageBox.Show( "Resolving.." ); // Pour l'exemple
        return Assembly.LoadFrom( "C:\\MonDossier\\MyLib.dll" );
    };

    Application.EnableVisualStyles( );
    Application.SetCompatibleTextRenderingDefault( false );
    Application.Run( new Form1( ) );
}

jeudi 25 mai 2006 à 01:52:47 | Re : dll et chemin d'accès

Killan

Réponse acceptée !
t'es idées sont bonne mais malheureusement ne fonctionnent pas avec ma structure (que je ne peu pas changer d'ailleur)

suite à tes conseils j'ai explorer l'aide sur le comment un assembly est chargé et ses chemins d'accès trouvé et j'ai trouvé une solution à mon probleme mais qui reste propre à mon cas

dans le rep1 j'ai du y placer la dll selon la nomenclature suivante :

d:\rep1\nomdll\nomdll.dll

ça fonctionne mais pas comme j'aurais voulu

note que j'avais essayé ta solution 2 mais liebesstein.dll ne trouvait pas les dll dont elle avait besoin (tout est entremelé mais j'ai pas le choix)

si jamais un jour je trouve je ferai un petit exemple sur le sujet

encore merci à toi

Killan
www.daaboo.net


Cette discussion est classée dans : exe, dll, chemin, accès, rep


Répondre à ce message

Sujets en rapport avec ce message

exe c# sans framework.net ? [ par KaViDee ] Je voulais savoir si il était possible de lancer une application compilée en c#.net sans avoir la framework.net d'installée sur son ordinateur, qu'on Tronquer une chaine de caractère [ par cedricvdm ] Bonsoir,Imaginons que je choisis le chemin d'accès de ma base à l'aide d'un OpenFileDialog. Lorsque je renvoie la valeur choisie je trouve ceci "@"C:\ Memorisier un chemin [ par romsworld ] De retour sur le forum !Avec ce code, je recupere le chemin d'un .exeSeulement lorsque je ferme le programme et je le re ouvre, le chemin n'est pas me mettre une dll dans l'exe d'une application ?? [ par georgeduke ] Bonjour tout le monde ! J'ai développé un utilitaire ; pour lancer ce dernier, il suffit d'avoir l'exe bien-sûr et un fichier dll. Pour des questio [Visual C#] Chemin d'accès des références en relatif [ par nitrique ] Bonjour @ tous,Dans mon projet, j'ai ajouté une référence com (MSCommLib) avec l'assistant.Il me l'a ajouté dans: "références", il m'a copié à la raci [C#] Création d'une DLL ou EXE avec icones [ par linuxludo ] Bonjour a tous ! J' ai développé une appli, et je voudrais a present concevoir une dll (ou intégrer a l'exe, a voir) qui contient les icones de cet ap Paramètre de retour d'un EXE via une DLL [ par BackPack ] Salut !J'ai un petit souci. Peut-être que quelqu'un parmis vous ala solution. Je m'explique :J'ai conçu une DLL et un projet Console style TOTO.EXEMa problême de chemin d'accès pour une impression [ par tatagre ] Bonjour à tous,j'ai un probleme pour indiquer le chemin d'accé au fichier txt pour l'imprimer, voici ma ligne :fileToPrint = new System.IO.<font col Comment utiliser un dll ou un exe ? [ par petermadio ] Salut !Je voudrais savoir comment utiliser quelques fonctions d'une dll dont je connais pas les paramaitres de la fonctions.Est-ce possible ? Si oui c Est-ce possible d'avoir un dll à partir d'un exe ? [ par petermadio ] Salut !Peut-on produire à partir d'un executable une dll ?Si oui comment ?Merci !


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales