Question

Existe-t-il un moyen dans FSI que je puisse faire référence et utiliser des composants COM enregistrés?

Dans un programme compilé. FS normal, je peux simplement référencer le composant en question, puis ouvrir les espaces de noms générés pertinents. Dans un fichier .fsx, cependant, je n'arrive pas à reproduire ce comportement. J'ai essayé d'utiliser #R pour référencer le .dll directement, et j'ai essayé d'utiliser #i pour pointer vers le répertoire suivi #R à la fois avec le nom "amical" de la bibliothèque et le nom de fichier, mais rien ne semble fonctionner.

Êtes-vous uniquement en mesure de référencer les assemblages .NET à partir d'un .fsx? Je ne veux pas vraiment avoir à écrire / générer un assemblage en wrapper. J'espère qu'il pourrait y avoir un moyen de forcer FSI à prendre les mesures que prend l'exécutable normal afin de fournir la couche d'interopérative.

Était-ce utile?

La solution

Lorsque vous ajoutez une référence à un composant COM dans Visual Studio, il invoque un outil pour générer un wrapper (assemblage .NET standard), puis fait référence à l'emballage.

Si vous souhaitez référencer Com de fsx, vous devrez générer vous-même l'emballage (ou trouver celui généré par Visual Studio?) L'outil qui génère l'emballage qui s'appelle TlbImp.exe (voir Type Importateur de bibliothèque sur MSDN).

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