J'ai une solution contenant un projet C ++ DLL et un projet C # qui utilisera cette DLL (à l'aide de Pinvoke). P>
La DLL est en cours de construction sur le dossier Je me demande quel serait la bonne façon de le référencer maintenant. En ce moment, le projet DLL est une dépendance du projet C #. Mon intuition m'a dit que cela aurait dû être suffisant, mais le projet C # dit qu'il ne peut pas trouver la DLL. P>
devrais-je simplement ajouter le fichier x64 / version code> de mon dossier de solution, ce qui est logique, car le projet C # ne doit pas nécessairement se lancer dans les dossiers du projet DLL. p>
.dll code> comme une référence aussi? Je pensais que cela pourrait fonctionner maintenant, mais casser des choses à long terme lorsque les paramètres de projet peuvent être modifiés. P>
3 Réponses :
J'ai déjà répondu à une question similaire. Donc, je ne répète pas le texte ici. p>
Vous voudrez peut-être jeter un coup d'œil à: p>
souhaite que cela aide. p>
généralement dans de telles situations, je configure ma solution de telle sorte que tous les projets compilent sur Quant à garder la dernière version de la DLL, rappelez-vous que vous pouvez définir une dépendance, de sorte que si quelque chose change dans la DLL, il sera reconstruit avant de construire votre assemblée / application. P>
Un autre moyen est d'utiliser des événements de construction (Prebuild et PostBuild) pour copier votre DLL dans le dossier approprié. P> $ (solutiondir) bin \ $ (configuration) code>. Les fichiers binaires sont ensuite situés de la même manière que dans le mode de production et les DLL peuvent être facilement utilisés. P>
Vous ne pouvez pas ajouter une DLL non gérée comme référence dans un projet géré. La DLL doit résider dans le dossier de l'exécutable ou dans n'importe quel autre dossier du chemin du système. p>
Le meilleur moyen est d'utiliser un "événement de publication" pour que VS copier la DLL soit dans le dossier où il est nécessaire chaque fois qu'il est reconstruit. P>
Est le code géré C ++ DLL?
@WhozCraig: Il dit qu'il utilise p / invoke - il doit être non géré.
Oui, je viens de voir ça. duh. J'ai vraiment besoin de dormir.