2009-07-08 6 views
1

J'ai un assembly contenant un mélange de code C++ managé et non managé. Je l'ai signé et installé dans Global Assembly Cache. Mon programme (.Net, C#) ne le trouvera pas là, bien que cela fonctionne parfaitement quand l'assembly est dans le répertoire du programme. Le programme utilise DllImport et pinvoke pour appeler les méthodes de l'assemblage. Comment puis-je faire en sorte que le programme trouve mon assembly dans le GAC? Puis-je utiliser le fichier exe.config ou exe.manifest pour y parvenir?Installation de l'assembly natif dans GAC

+0

Comment avez-vous installé votre dll natif du GAC? Ce n'est pas possible. –

Répondre

2

Non, vous ne pouvez pas. La manière dont DllImport résout les bibliothèques est complètement différente de la façon dont les moteurs d'exécution trouvent des assemblages gérés.

1

Marcus Heege a un joli billet de blog à ce sujet. Vous devez ajouter /assemblylinkresource lorsque vous liez votre C++/CLI code

http://www.heege.net/blog/PermaLink,guid,d3b405c1-73d4-4d04-934f-3e2ee2b5f589.aspx

+0

Filip, merci pour votre message. Le blog est en effet très intéressant. Mais ce que je veux réaliser c'est appeler l'assembly en mode mixte sans utiliser l'encapsuleur géré installé dans GAC. –