2017-06-20 3 views
2

Ich versuche, F # und Paket mit Azure-Funktionen zu verwenden. Ich verwende Azure Functions Core Tools, damit ich meine Funktionen lokal ausführen kann, bevor ich sie in Azure deploye.Azure-Funktion Host löst keine Abhängigkeiten

Das Problem ist, wenn ich die Funktion ausführen, Kompilierung schlägt fehl mit:

warning FS211: The search directory 'C:\Users\MY_USER\AppData\Local\Temp\51f4f9fa-dc47-48b7-a2fa-432b52cf02a9\../packages' could not be found 

Der entsprechende Code wie folgt aussieht:

#I "../packages" 

#r "FSharp.Data/lib/net40/Fsharp.Data.dll" 
#r "WindowsAzure.Storage/lib/net45/Microsoft.WindowsAzure.Storage.dll" 
#r "System.Net.Http/lib/net46/System.Net.Http.dll" 

Nun ist ../packages der richtige Pfad Abhängigkeiten Paket, bezogen auf die .fsx-Datei. Das funktioniert gut, wenn ich den Code interaktiv in VS Code ausführe, aber der Azure-Host scheint ein seltsames Suchverzeichnis zu verwenden (das nicht existiert, BTW), anstatt das Codeverzeichnis zu verwenden.

habe ich versucht, absolute Pfade wie die Angabe:

#r "C:/MY_PATH/packages/FSharp.Data/lib/net40/Fsharp.Data.dll" 
#r "C:/MY_PATH/packages/WindowsAzure.Storage/lib/net45/Microsoft.WindowsAzure.Storage.dll" 
#r "C:/MY_PATH/packages/System.Net.Http/lib/net46/System.Net.Http.dll" 

dies den Code Kompilierung lassen tun, aber dann bekam ich diesen Fehler, wenn es ausgeführt wird:

Unable to find assembly 'FSharp.Data, Version=2.3.3.0, Culture=neutral, PublicKeyToken=null'. Are you missing a private assembly file? 

ich überprüft und die FSharp.Data Montage ist in der Tat in Version 2.3.3.0

Irgendwelche Ideen, wie ich den Azure-Funktion-Host dazu bringen kann, meine Abhängigkeiten zu finden und zu verwenden?

+2

Es sieht so aus, als ob die Funktionen-Teams jetzt auf vorkompilierte Funktionen für F # und C# anstelle von Skripten ausgerichtet sind. Wir hatten mehr Freude mit diesem Ansatz. Es sollte Ihre Geschichte der Paketabhängigkeit vereinfachen, da Sie nur DLLs bereitstellen. Es macht es auch ziemlich einfach, in VS zu debuggen, indem Sie das Projekt starten, indem Sie den Funktionen-Werkzeugkasten aufrufen. Ein weiterer Vorteil ist eine schnellere Startzeit für Ihre Funktionen. – TheQuickBrownFox

+1

Krzysztof Cieslak hat ein Beispiel der Azure-Funktion mit Paket für Abhängigkeitsmanagement - ich habe versucht, dies vor kurzem zu tun, und das hat eine Menge geholfen: https://github.com/Krzysztof-Cieslak/AzureFunctionsSamples –

+0

@TomasPetricek Ich las einen Blog-Artikel von sein, aber es enthielt nichts für die Entwicklung vor Ort – Cocowalla

Antwort

1

Es scheint jetzt zu arbeiten, solange ich keinen Suchpfad mit #I angeben und den vollständigen relativen Pfad für Referenzen enthalten.

Ich bin mir wirklich nicht sicher warum das ist der Fall obwohl.

Verwandte Themen