2016-11-26 28 views
6

我正在寫一個Azure功能,使用來自我的私人提要的2個nuget軟件包(A和B)。程序包A直接使用Dapper版本1.50.2,程序包B使用Dapper.SimpleCrud 1.13.0,它依賴於Dapper版本[1.42.0,2.0.0)。與具有不同版本的相同依賴項的nuget軟件包的天青功能

在Azure函數中,我添加了project.json,其中指定了包A和B及其版本。

當我看到azure函數中安裝的軟件包時,我看到Dapper 1.42.0和1.50.2都安裝了。當我嘗試調用包A和B中的方法時,我在azure函數日誌中發現錯誤,指出它找不到Dapper版本1.40。 (這取決於我如何設置我的project.json它將是Dapper 1.40或1.50,這是Azure Function找不到的)

我創建了Dapper.SimpleCRUD軟件包的測試版本,其中依賴於dapper的是[ 1.50.2,2.0.0),每件事情都有效。

我也試圖將Dapper 1.50.2添加到project.json中,希望它能被Dapper.SimpleCRUD使用,但它似乎仍然拉入Dapper 1.42。

有一些設置,我錯過了Azure函數來允許此設置工作,或者這是Azure功能包管理的限制嗎?

感謝您提供的任何幫助。

+0

這似乎是Azure函數和.NET的一個普遍問題,仍在此處進行跟蹤:https://github.com/Azure/azure-webjobs-sdk-script/issues/992。取得了一些進展,詳見https://stackoverflow.com/questions/38093972/azure-functions-binding-redirect – Rory

回答

4

我看起來像一個問題(AFAIK甚至遲到2106年10月),他們仍然沒有想出一個很好的方式來綁定azure函數中的重定向。

我遇到了一個類似的問題,使用了兩個不同版本的nuget包,它們具有相同的依賴關係(但版本不同)。

有此類似的問題問:Azure Functions binding redirect

我結束了保持nugets儘可能少的數量,以避免綁定重定向。如果您的項目無法實現,請嘗試使用webjobs(至少作爲短期解決方案),直至天藍色的功能支持此功能。

+0

感謝您的回覆。看起來這是一個定期發生的問題。我花了整個昨天試圖解決這個問題,並建立了我的版本的Dapper.SimpleCRUD,它的工作。今天,我將我的依賴回滾到原始Dapper.SimpleCRUD,它的最小值爲[1.42],並重新啓動了我的應用服務,並且每件事情都正常工作(調用使用Dapper.SimpleCRUD並調用其他使用Dapper 1.50.2的包.. ... – Nish

+2

Nish,如果您仍然遇到問題,請在GitHub(https://github.com/Azure/azure-webjobs-sdk-script)上提供詳細的步驟/說明,以便我們可以進行調查。 m還在處理(逾期)帖子,其中詳細介紹了有關Azure函數中託管依賴項的選項和行爲的信息,這可能有助於澄清一些問題。 –

相關問題