Question

Pour commencer, je voudrais dire que je suis plutôt familier avec le système de liaison de Windows. (La plupart de mon expérience de programmation a été acquise sous Mac OS, sur lequel reliant les bibliothèques et le cadre est radicalement différent. Je suis aussi pas beaucoup d'un utilisateur Windows.)

Voici ma configuration: J'ai deux projets dans la même solution. Le premier est un projet C ++ / CLI nous appellerons Foo. Foo est un projet de bibliothèque qui dépend d'une bibliothèque externe (Java Runtime Environment), et a donc la référence appropriée à la appropriée (je crois, car il compile) .lib fichier. (Je l'ai changé aucun autre paramètre de projet lié au chargement de cette bibliothèque.) Mon autre projet, Bar est un projet exécutable console C # qui fait référence à Foo.

Les deux compilez très bien.

Cependant, quand j'exécute mon programme Bar.exe C #, il meurt avant la construction du premier objet qui exige de types Foo. L'exception est un FileNotFoundException qui indique l'ensemble de Foo.dll ou une de ses dépendances ne pouvait être trouvé.

Je lançais fuslogvw pour voir ce qui se passait mal, mais je ne comprends pas vraiment comment cela fonctionne, et la documentation que j'ai trouvé sur c'est plutôt inutile. D'après ce que je crois comprendre, à la fois Foo et Bar Échec du chargement des images natives, mais ont été jugées correctes IL et ont été correctement chargées de cette façon. Il n'y a pas d'autre mention pertinente de l'échec, bien que, de toute évidence, il Finalité échouent à un moment donné. Je posterai les journaux, mais ils sont en français et je pense que ce serait assez inutile.

Toute idée?

Était-ce utile?

La solution

sont toutes les dépendances exécutables et dll dans le répertoire de sortie? Vérifiez les dépendances natives d'abord avec dépend.

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