Question

J'ai un projet C # qui fait référence à un assembly en mode mixte C ++ / CLI. Cet assemblage est stocké dans un dossier dans le PATH et il est également présent au GAC mais quand il est exécuté, j'obtiens un:

System.IO.FileNotFoundException: impossible de charger le fichier ou l'assembly 'PcsSocketCommunications500, Version= 0.0.0.0, Culture= neutral, PublicKeyToken= null'

La version 0.0.0.0 est due au fait que le C ++ / CLI n'a pas de classe de version Assembly, mais pour autant que je sache, cela ne devrait pas poser de problème.

Exécution du moniteur de processus J'ai vu que le système recherche simplement l'assembly dans le même dossier que le processus principal ... Je ne suis pas un expert du chargement d'assemblages mais je m'attendais à voir au moins quelques recherches GAC et ' peut-être 'quelques recherches PATH .. C'est ce que j'ai obtenu (PcsSocketCommunication500.dll est l'assemblage C ++ / CLI et en noir c'est le répertoire de travail):

entrez la description de l'image ici

Une idée de la raison pour laquelle le chargeur ne vérifie pas le GAC ou le PATH?

Était-ce utile?

La solution

PublicKeyToken= null

L'assembly n'a pas de nom fort.Cela signifie qu'il ne peut pas être localisé dans le GAC, le CLR ne va pas y chercher.Je ne sais pas ce que vous avez fait pour entrer dans le GAC, mais cela ne devrait pas être possible tel quel.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top