Bonjour,
J'essaye en vain de charger une dll référencée dans un projet lors du lancement d'une application Console en C# framework 3.5.
Ce qui bloque, c'est que j'aimerai que cette dll ne se trouve ni à coté de l'exécutable, ni dans le GAC, mais sur un disque réseau partagé ou sur un serveur web, dans tous les cas dans un emplacement accessible de tout un ensemble de postes. Le but étant qu'un ensemble de programmes lancés depuis tout un parc utilise la même dll, ce qui en faciliterait la maintenance.
J'ai trouvé sur MSDN cette façon de faire, a savoir modifier le fichier application.exe.config et d'y faire figurer ceci :
Mais j'ai beau changer de toutes les manières possibles l'attribut href de la balise codebase, rien n'y fait, j'ai toujours une erreur IO.FileNotFoundException au lancement de mon application. Je précise que j'ai bien entendu changé l'attribut name de la balise assemblyidentity pour qu'il corresponde à mon contexte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="myAssembly" publicKeyToken="32ab4ba45e0a69a1" culture="neutral" /> <codeBase version="2.0.0.0" href="http://www.litwareinc.com/myAssembly.dll"/> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
L'autre méthode que j'ai trouvé sur MSDN est d'utiliser la balise probe :
Cette fois ci le chemin est pris en compte, mais comme l'indique MDSN, on ne peut spécifier que des chemins se trouvant au niveau ou en dessous de l'application. Cela ne me permet donc pas d'y mettre une url ou un chemin réseau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <probing privatePath="bin;bin2\subbin;bin3"/> </assemblyBinding> </runtime> </configuration>
Avez vous une solution pour charger une dll se trouvant sur un serveur ?
Partager