2011-04-20 8 views
9

Je suis fraîche à F #, mais je veux vraiment l'apprendre. Je connais Python, je connais C#. En fait, j'ai une bibliothèque C# que j'ai créée moi-même; c'est un wrapper pour l'API Rdio (je l'ai nommé RdioSharp) que je peux réussir à introduire dans un autre projet C# et l'appeler, l'utiliser, obtenir des données ... ça marche.Utilisation de la bibliothèque C# dans un projet F #?

Je veux commencer à jouer avec cette bibliothèque C# dans un projet F #, mais cela ne fonctionne pas correctement. Voici un court extrait de ce à quoi ressemble le code C#.

namespace RdioSharp { 
    public class RdioManager { 
     public RdioManager() { } 
    } 
} 

J'ai ajouté la référence à la DLL dans mon projet FSharpTest, je l'ai tiré un fichier .fsx, et je l'ai essayé ce qui suit, chaque ligne ci-dessous (encore une fois, gardez à l'esprit, je vraiment Je n'ai aucune idée de ce que je fais).

open RdioSharp 
open RdioSharp.dll 
#r "RdioSharp.dll" 
#r "C:\Path\To\Library\RdioSharp.dll" 

Je ne peux pas comprendre celui-ci. Je sais comment utiliser les bibliothèques du système F #, mais comment puis-je référencer une bibliothèque C# dans F #? C'est possible? Est-ce suffisamment d'informations pour continuer? J'ai vu this et this (ce qui se rapproche encore plus de mon problème) mais ces gens en savent plus sur F # que moi, et ils sont très en avance sur mon problème.

Dans la fenêtre interactive, lorsque je poinçonne #r "RdioSharp.dll";;, j'obtiens cette jolie erreur.

error FS0084: Assembly reference 'RdioSharp.dll' was not found or is invalid 

Répondre

5

Le code suivant fonctionne si F environnement # peut trouver l'emplacement de Rdiosharp.dll. Habituellement non! Cela ne fonctionne donc pas et vous indique que "l'erreur FS0084: La référence de l'assembly 'RdioSharp.dll' n'a pas été trouvée ou est invalide".

#r "RdioSharp.dll" 

Vous pouvez fournir le chemin exact de cette dll comme dans:

#r @"c:\temp\RdioSharp.dll" 

ou vous pouvez ajouter le dossier dans la recherche-chemin:

#I @"c:\temp" 
+0

Ahh, je vous remercie! Dans toute ma frustration, j'avais oublié de '@' ma chaîne pour m'assurer que les barres obliques inverses étaient échappées. Pas étonnant qu'il n'ait pas pu trouver ma bibliothèque. –

+0

merci !! après quelques heures j'ai trouvé ta réponse et ça l'a résolu! – dusiod

Questions connexes