簡體   English   中英

.NET AWS Lambda依賴關系未發布

[英].NET AWS Lambda Dependencies not Publishing

我有兩種解決方案:

  • 一個帶有單個.NET Core 2.0 Lambda項目的項目
  • 另一個具有多個.NET 4.5類庫項目。

我想在4.5類庫中實現lambda方法實現,以便可以在整個企業中使用這些功能,而不僅僅是Lambda函數。 但是,當我構建我的lambda項目並從VS 2017中發布時,它會壓縮,打包並發布其直接依賴項 4.5程序集的依賴項,但是4.5程序集的依賴項都不可用。

例如,我的4.5個項目之一有一個使用HtmlAgilityPack的類庫。 當我從VS 2017發布時,我可以看到壓縮后的程序集可以發布:

Zipping publish folder C:\Data\Dev\MyProject\bin\Release\netcoreapp2.0\publish to C:\Data\Dev\MyProject\bin\Release\netcoreapp2.0\Lambda1.zip
... zipping: Amazon.Lambda.Core.dll
... zipping: Amazon.Lambda.Serialization.Json.dll
... zipping: AWSSDK.Core.dll
... zipping: AWSSDK.Lambda.dll
... zipping: Elasticsearch.Net.dll
... zipping: EntityFramework.dll
... zipping: HtmlAgilityPack.dll

而且我可以在...bin\\Release\\netcoreapp2.0\\publish文件夾和MyProject.zip包中看到該程序集。 但是,當我測試我的lambda時,我得到以下信息:

    {
  "errorType": "FileNotFoundException",
  "errorMessage": "Could not load file or assembly 'HtmlAgilityPack, Version=1.4.0.0, 
Culture=neutral, PublicKeyToken=bd319b19eaf3b43a'. The system cannot find the file specified

如果我將HtmlAgilityPack引用直接添加到我的Lambda項目中,然后進行構建和發布,問題就會消失。 我不明白為什么文件在部署包中明顯不可用。 就像“二級”引用一樣,4.5類庫中的引用完全不可用,這使得我想避免使用一些緊密耦合的代碼。 我想念什么?

這個問題的答案基本上回答了這個問題 :您可以使用NuGet包而不是相對引用來確保Lambda項目了解所有傳遞依賴項。 我的真正問題是,我在4.5項目中的許多次要依賴項根本與.NET Core 2.0不兼容,這是一個完全不同的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM