Pregunta

¿Hay alguna manera dentro de FSI que pueda hacer referencia y usar componentes COM registrados?

En un programa compilado .FS normal, simplemente puedo hacer referencia al componente en cuestión y luego abrir los espacios de nombres generados relevantes. Sin embargo, en un archivo .fsx, parece que no puedo replicar este comportamiento. He intentado usar #R para hacer referencia al .dll directamente, y he intentado usar #i para señalar el directorio seguido tanto con el nombre "amigable" de la biblioteca y el nombre del archivo, pero nada parece funcionar.

¿Solo puede hacer referencia a los ensamblados de .NET de un .fsx? Realmente no quiero tener que escribir/generar un ensamblaje de envoltura. Espero que pueda haber una manera de obligar a FSI a tomar los pasos que toman el ejecutable normal para proporcionar la capa de interoperabilidad.

¿Fue útil?

Solución

Cuando agrega una referencia a un componente COM en Visual Studio, invoca una herramienta para generar un envoltorio (ensamblaje estándar de .NET) y luego hace referencia al envoltorio.

Si quieres hacer referencia a com de fsx, necesitarás generar el envoltorio tú mismo (o encontrar el generado por Visual Studio?) La herramienta que genera el envoltorio que se llama TlbImp.exe (ver Tipo de biblioteca Importador en MSDN).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top