La DLL en mode mixte appelée depuis une application C native ne se charge pas : Une exception non gérée de type 'System.IO.FileLoadException' s'est produite dans un module inconnu.
Informations supplémentaires : Impossible de charger le fichier ou l'assemblage 'XXSharePoint, Version=0.0.0.0, Culture=neutre, PublicKeyToken=e0fbc95fd73fff47' ou l'une de ses dépendances. Impossible d'accorder les demandes de permission minimales. (Exception de HRESULT : 0x80131417)
Mon environnement est : Une application C native appelant une DLL C++ en mode mixte, qui charge ensuite une DLL C# . Cela fonctionne correctement lorsqu'il est chargé à partir d'un lecteur local, mais lorsqu'il est lancé à partir d'un lecteur réseau, il échoue avec les messages ci-dessus.
L'appel à LoadLibrary réussit, tout comme le GetProcAddress. L'erreur de chargement se produit lorsque j'appelle la fonction.
J'ai signé numériquement l'application C, et j'ai effectué une signature "strong name" sur les 2 DLLs. Le PublickKeyToken dans le message ci-dessus correspond bien à la DLL nommée. J'ai également lancé les commandes CASPOL sur mon client pour accorder une confiance totale à ce keytoken de nom fort. Lorsque cela n'a pas fonctionné, j'ai essayé la commande CASPOL pour accorder FullTrust à l'URL du lecteur réseau (y compris le chemin d'accès au répertoire de mon application) ; aucun changement dans les résultats.
J'ai essayé de supprimer toutes les dépendances, pour qu'il n'y ait que la DLL initiale en mode mixte... J'ai remplacé le corps de toutes les fonctions par un simple retour d'une valeur entière de "succès". Résultats inchangés. Ce n'est que lorsque j'ai changé le mode mixte en mode Win32, et que j'ai changé les propriétés de configuration >> Général >> Support du langage d'exécution commun de "Support du langage d'exécution commun" à "Pas de support du langage d'exécution commun" que l'appel de la DLL a produit le résultat attendu (juste le retour de la valeur entière "success").