7
votes

Problèmes étranges avec RX sur .NET 4.5 et F #

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'.`


2 commentaires

Faites une diff sur les fichiers .fsproj! Comparez surtout la liste des


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.


4 Réponses :


1
votes

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.


3 commentaires

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 .. \ packages \ rx-core.1.30214.0 \ lib \ net45 \ system.r eactive.core.dll


Cliquez sur System.Reactive.Linq Référence, appuyez sur F4, regardez le chemin et assurez-vous qu'il a Net45.



1
votes

Ce n'est pas le problème infâme de Nuge / F # que Mike documpe ici, est-ce?

http: //ikehadlow. blogspot.co.uk/2013/06/nuget-install-s-broken-with-f.html


0 commentaires

2
votes

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


2 commentaires

+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>