J'ai créé un projet de classe/bibliothèque dans Visual Studio, une feuille de calcul dans l'espace de noms SS. Ensuite, j'ai créé une application de formulaire Windows, j'ai ensuite ajouté la DLL, et l'ai placée dans mon menu de ressources, et elle se construit très bien, cependant, à l'exécution, j'obtiens un TryLoadException
, ce que la documentation semble dire signifie que ce n'est pas dans le assemblage, mais alors pourquoi compile-t-il très bien? En outre, je doute que ce soit un problème avec ma DLL, comme mon ami a fait une DLL similaire (correspondant aux mêmes API, mais construit différemment, et cela fonctionne pour son application Windows Forms), et je reçois toujours le TryLoadException
.Utilisation de DLL à partir du projet C#, obtention d'une exception TryLoadException à l'exécution
Voici la procédure que j'ai suivie.
- Créer (et implémenter) la classe de feuille de calcul.
- Créez une nouvelle solution et un nouveau projet pour la feuille de calcul graphique.
- Dans le projet, faites un clic droit et ajoutez un élément existant, la DLL trouvée dans le premier dossier bin/debug (ou bin/release, j'ai essayé les deux). Aussi ajouté la DLL aux références.
Quelque part dans le code get exécuté, ajoutez la ligne:
feuille de calcul ss = nouvelle feuille de calcul(); // Ils sont déjà tous les deux dans le même espace de noms
Build, notez qu'il n'y a aucune erreur.
- Exécuter, l'exécution s'arrête là avec l'exception TryLoadException.
Faites un clic droit sur la référence et cochez l'attribut "Copier Local" - il devrait être vrai. –
Oui, l'attribut local de copie était true. –