2016-03-30 5 views
3

Nachdem ich die FSharp.Data TypeProviders in verschiedenen Projekten verwendet habe, die an JSON arbeiten, war ich auf der Suche nach einem ähnlichen Ansatz zum Konsum von WSDL-basierten Diensten. Als ich this Beispiel sah, war ich hoffnungsvoll. Leider funktioniert das nicht mit Mono auf einem Mac.WSDL und F # TypeProviders in Mono

Gibt es Alternativen oder Lösungen für die Fehler

"The type provider 
'FSharp.Data.TypeProviders.DesignTime.DataProviders' reported an error: 
The .NET SDK 4.0 or 4.5 tools could not be found (FS3033)" 

Antwort

2

Die folgende mit sehr wenig Wissen über Mono geschrieben, aber einige Kenntnisse über diese WSDL-Typ-Anbieter. Ich benutze es sehr und habe einige Erfahrungen in all den Macken, einschließlich das Lesen der Quelle davon, um zu versuchen zu verstehen, was passiert ist, wo und warum von Zeit zu Zeit. Fügen Sie auch etwas Wissen über das SVCUTIL-Tool im Allgemeinen und die Fehler und was nicht von diesem untergeordneten Werkzeug hinzu.

Ich denke, das Hauptproblem hier ist, dass der "Pfad" zu SVCutil auf Mono falsch ist oder SVCutil vollständig fehlt. Oder eine Permutation dieses Problems wie das Fehlen eines Registrierungsschlüssels, der auf den Pfad von SVCutil verweist.

Auf der anderen Seite denke ich, dass Svcutil auch auf Mono verfügbar sein sollte.

Der WSDL-Provider ist ein nicht löschender Typ und generiert einen Proxy, indem er svcutil zum Generieren von Code verwendet und dann kompiliert. Stellen Sie sicher, dass Sie die SVCutil zur Verfügung haben und stellen Sie sicher, dass sie im Pfad/Registrierung/was auch immer, könnte Ihnen helfen. Ansonsten bin ich zu 99% sicher, dass du diesen Typ-Provider leider nicht auf mono verwenden kannst. Der unsichere Teil hier ist, wenn Sie eine Bibliothek in einer Windows-Umgebung erstellen und diese DLL dann innerhalb von Mono wiederverwenden, was funktionieren könnte.

an der Quelle Blick auf GitHub: https://github.com/fsprojects/FSharp.Data.TypeProviders/blob/master/src/FSharp.Data.TypeProviders/Util.fs#L106 (Linie 106 ++) und https://github.com/fsprojects/FSharp.Data.TypeProviders/blob/master/src/FSharp.Data.TypeProviders/TypeProviders.fs (Teile, bei denen SvcUtil verwendet wird) Sie eine Ahnung, wo bekommen könnten, wie und was nicht, dass die SvcUtil zu machen. Exe ist bei korrekten Pfaden verfügbar.

https://github.com/fsprojects/FSharp.Data.TypeProviders/blob/master/src/FSharp.Data.TypeProviders/Util.fs#L82 verweist auf einige Registrierungsschlüssel und fügt auch ein paar Pfade fest codiert hinzu.

Hoffentlich dass es für Sie, indem Sie sicherstellen beheben können Sie tatsächlich die svcutil bei „richtigen“ Weg haben ...

Ich mag diese Abhängigkeit von svcutil nicht (es hat mir etwas zu grrr), oder andere externe Tools in der Art von Anbietern, im Allgemeinen, und hoffentlich eine Art Seele wird sich auf eine Mission begeben, um dies irgendwann zu schreiben.