2016-11-26 4 views
6

Ich schreibe eine Azure-Funktion, die 2 nugget-Pakete (A und B) aus meinem privaten Feed verwendet. Paket A verwendet Dapper Version 1.50.2 direkt und Paket B verwendet Dapper.SimpleCrud 1.13.0, das eine Abhängigkeit von Dapper Version [1.42.0, 2.0.0) hat.Azure-Funktionen mit Nuget-Paketen, die unterschiedliche Versionen derselben Abhängigkeit haben

Innerhalb der Azure-Funktion habe ich project.json hinzugefügt, wo ich Paket A und B und ihre Versionen angeben.

Wenn ich auf die installierten Pakete innerhalb der Azure-Funktion schaue, sehe ich, dass Dapper 1.42.0 und 1.50.2 beide installiert sind. Wenn ich versuche, Methoden in Paket A und B aufzurufen, erhalte ich einen Fehler in den azure-Funktionsprotokollen, der besagt, dass Dapper Version 1.40 nicht gefunden werden konnte. (abhängig davon, wie ich meine project.json eingestellt habe, wäre es entweder Dapper 1.40 oder 1.50, die nicht von Azure Function gefunden werden)

Ich habe eine Testversion des Dapper.SimpleCRUD-Pakets erstellt, wo die Abhängigkeit von dapper von [ 1.50.2, 2.0.0) und alles funktioniert.

Ich habe auch versucht, Dapper 1.50.2 zu project.json in der Hoffnung hinzuzufügen, dass es von Dapper.SimpleCRUD verwendet wird, aber es scheint immer noch in Dapper 1.42 zu ziehen.

Gibt es eine Einstellung, die ich bei Azure-Funktionen vermisse, damit diese Einrichtung funktioniert oder ist dies eine Einschränkung der Azure-Funktionspaketverwaltung?

Vielen Dank für Ihre Hilfe.

+0

Dies scheint ein allgemeines Problem mit Azure-Funktionen und .NET zu sein, noch verfolgt hier: https://github.com/Azure/azure-webjobs-sdk-script/issues/992. Einige Fortschritte wurden gemacht, wie beschrieben unter https://stackoverflow.com/questions/38093972/azure-functions-binding-redirect – Rory

Antwort

4

Ich scheint wie ein Problem (AFAIK noch so spät wie Oktober 2106), dass sie immer noch nicht eine gute Möglichkeit, bindende Weiterleitungen in azurblauen Funktion zu tun haben.

Ich stieß auf ein ähnliches Problem mit meiner Azure-Funktion mit zwei verschiedenen nuget-Pakete mit der gleichen Abhängigkeit (aber verschiedenen Versionen).

Es gab eine ähnliche Frage hier gestellt: Azure Functions binding redirect

ich eine möglichst geringe Anzahl von nugets halten landete, um die Bindung Umleitungen zu vermeiden. Wenn dies mit Ihrem Projekt nicht möglich ist, versuchen Sie es mit Webjobs (zumindest als Kurzzeitlösung), bis azure functions dies unterstützt.

+0

Danke für Ihre Antwort. Es scheint, dass dies ein Problem ist, das in regelmäßigen Abständen auftritt. Ich habe den ganzen gestrigen Tag damit verbracht, dieses Problem zu beheben, und meine Version von Dapper.SimpleCRUD erstellt und es hat funktioniert. Heute habe ich meine Abhängigkeiten auf den ursprünglichen Dapper.SimpleCRUD zurückgesetzt, der mindestens [1.42] hat und meinen App-Dienst neu gestartet hat und alles funktioniert einwandfrei (Aufrufe, die Dapper.SimpleCRUD verwenden und Aufrufe an andere Pakete, die Dapper 1.50.2 verwenden. ... – Nish

+2

Nish, wenn Sie weiterhin auf Probleme stoßen, melden Sie bitte ein Problem mit detaillierten Schritten/Beschreibungen auf GitHub (https://github.com/Azure/azure-webjobs-sdk-script), damit wir das untersuchen können. Ich arbeite auch an einem (überfälligen) Beitrag mit detaillierten Informationen über die Optionen und das Verhalten von verwalteten Abhängigkeiten in Azure-Funktionen, die dabei helfen können, einige der Fragen zu klären. –

Verwandte Themen