2016-11-25 9 views
1

私たちにはプライベートNugetフィードを介して外部アセンブリを参照するAzure関数があります。Azure関数dllバージョンの不一致

問題は、Microsoft.Azure.WebJobs.dllの2つの異なるバージョンがあることです.1つは私たちのnugetパッケージの依存性であり、もう1つはランタイムによって提供されていると考えています。

error CS1503: Argument 2: cannot convert from 'Microsoft.Azure.WebJobs.ICollector<Microsoft.WindowsAzure.Storage.Table.ITableEntity> [D:\Program Files (x86)\SiteExtensions\Functions\1.0.10635\bin\Microsoft.Azure.WebJobs.dll]' to 'Microsoft.Azure.WebJobs.ICollector<Microsoft.WindowsAzure.Storage.Table.ITableEntity> 

私はバインディングリダイレクトがサポートされていないことを言って、この質問が見つかりました:私たちは、そのライブラリへの依存を削除しようとすることができ、または我々はAzureの機能が使用するバージョンと一致している可能性が

Azure Functions binding redirect

をとにかくMicrosoft.WindowsAzure.Storageを使用することで同じ問題が生じると思います。

お知らせください!

答えて

2

バインディングリダイレクトはサポートされていません。ランタイムは、WebJobs SDKおよびStorageライブラリに独自の依存関係を持ち、関数に渡されるオブジェクトはそれらのバージョンからのものになります。他のバージョンの依存関係を削除し、私たちにスナップすることをお勧めします。 (あなたがWebJobs SDKタイプの明示的な#rの参照を追加する必要はありません

#r "WindowsAzure.Storage" 

:あなたは経由してあなたの関数のコードで私たちを参照することができ、これらのライブラリのために、あなたがあなた自身のパッケージの参照を追加する必要はありません例えばICollector<T>) - ランタイムはそのアセンブリを暗黙的に追加します。もちろん、これはコンパイルする関数コードにのみ適用され、外部パッケージからのコードには適用されません。

将来的にはこの領域で改善する可能性がありますが、今のところ競合するバージョンを使用しようとするとストリームが氾濫してしまいます。

+1

興味深いですが、なぜ私たちがナゲットからそのバージョンを引き出すことができないのかという疑問を依頼します。 – davidcarr

+0

私たちが使用しているのと同じ(または互換性のある)バージョンを使用している場合は、パッケージをnugetから引き出すことができます。 – mathewc

+0

これは私たちの愚かな間違いでした。私たちはWebjobs dllのバージョンとして関数ランタイムのバージョンを間違えました。 2.0.0を実行中 - 正しく動作します。私たちは以来、これらのパッケージに対する依存関係を削除しましたが、いずれにしてもそれは問題ありません。あなたの助けをありがとう! – Nosmadas

関連する問題