C'est très étrange.
J'ai deux projets à la fois F #. J'ai installé la dernière version stable (2.1.30214.0) de RX via Nuget. P>
dans le projet Tout est absolument bien. Dans l'autre projet, je reçois fondamentalement des erreurs partout à cause des suivantes. P>
Error 1 The type 'IObservable`1' is required here and is unavailable. You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.`
4 Réponses :
Cela se produit lorsque vous faites référence aux 4,5 dlls dans un projet 4.0 ou inversement. Assurez-vous de référencer la bonne version. P>
Définitivement un projet 4.5. J'ai demandé à Nuget d'installer 2 projets, tous deux sont de 4,5. On travaille, on ne le fait pas. Essayé de les ré-créer à partir de zéro. Y a-t-il quelque chose que je peux regarder dans le fichier de projet à vérifier?
Vérifiez votre fichier FSPROJ. J'ai eu les mêmes problèmes et j'ai dû éditer manuellement le fichier de projet. Vous pouvez ajouter
Cliquez sur System.Reactive.Linq Référence, appuyez sur F4, regardez le chemin et assurez-vous qu'il a Net45.
Ce n'est pas le problème infâme de Nuge / F # que Mike documpe ici, est-ce? p>
http: //ikehadlow. blogspot.co.uk/2013/06/nuget-install-s-broken-with-f.html P>
J'ai aussi le problème, je l'ai réparé en modifiant le FSPROJ et en remplaçant Net45 avec Net40 dans tous les chemins DLL réactifs. Ceci est requis malgré ce qui suit dans mon fichier FSPROJ:
//open System type Array = System.Array type Double = System.Double type TimeSpan = System.TimeSpan
+1 Changer le chemin d'astuce sur Net40 a également travaillé pour moi, bien que cela ne se sent pas en sécurité :( J'ai creusé un peu dans les packages de Nuget et a découvert que les binaires Net40 sont des bibliothèques «vraies». Les fichiers binaires Net45 sont des bibliothèques portables. Il semble que les projets F # 4.5 n'aiment pas faire référence aux bibliothèques portables ...
FWIW, j'ai ajouté ce numéro sur le site du projet RX: rx.codeplex.com/workitem/47 < / a>
Comme indiqué par @mark Sememann, le problème découle du fait que le package RX Nuget pour .NET 4.5 est en fait une bibliothèque portable. p>
Malheureusement, F # 3.0 ne prend pas en charge les bibliothèques portables basées sur .NET 4,5, uniquement les héritage. Soutien aux nouvelles bibliothèques portables (également appelées bibliothèques basées sur .netcore) a été ajoutée dans VS 2013 . P>
Donc, vous avez 2 options: p>
Construisez la cible de version 45 ou debug45 de rx.sln dans le Rx Open-Source Libération et Utilisez cela au lieu des packages RX Nuget. P> LI>
Utilisez F # 3.1 disponible dans Visual Studio 2013. P> Li> ul>
Faites une diff sur les fichiers .fsproj! Comparez surtout la liste des code>
J'ai rencontré le même problème aujourd'hui. Fondamentalement, j'ai des squalglies rouges partout, mais la chose étrange est qu'elles s'en vont quand je compile. Mon code compile et s'exécute toujours, mais dès que je suis de retour dans l'éditeur, les squamglies réapparaissent.