Domanda

C'è un modo all'interno di FSI a cui posso fare riferimento e utilizzare componenti COM registrati?

In un normale programma compilato .fs posso semplicemente fare riferimento al componente in questione e quindi aprire lo spazio dei nomi generato pertinente. In un file .fsx, tuttavia, non riesco a replicare questo comportamento. Ho provato a usare #R per fare riferimento direttamente a .DLL e ho provato a usare #I per indicare la directory seguita #R sia con il nome "amichevole" della biblioteca che con il nome del file, ma nulla sembra funzionare.

Sei in grado di fare riferimento solo agli assiemi .NET da un .fsx? Non voglio davvero scrivere/generare un gruppo wrapper. Spero che ci possa essere un modo per costringere FSI a fare qualsiasi passo che esegui il normale eseguibile per fornire il livello interop.

È stato utile?

Soluzione

Quando si aggiunge un riferimento a un componente COM in Visual Studio, invoca uno strumento per generare un wrapper (assemblaggio .net standard) e quindi fa riferimento al wrapper.

Se vuoi fare riferimento a com da fsx, dovrai generare tu stesso il wrapper (o trovare quello generato da Visual Studio?) Lo strumento che genera il wrapper che viene chiamato TlbImp.exe (vedere Digitare l'importatore della libreria su MSDN).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top