【问题标题】:How can I add SSH.NET NuGet packages into my Azure Functions v2.0?如何将 SSH.NET NuGet 包添加到我的 Azure Functions v2.0?
【发布时间】:2023-03-22 08:13:01
【问题描述】:

我的 Azure 函数是 v2。 我已经在 function.proj 的 ItemGroup 中添加了<PackageReference Include="SSH.NET" Version="2016.1.0" />

但是,#r "Renci.SshNet" 不起作用。 #r "D:\home\site\wwwroot\bin\Renci.SshNet.dll" 也不起作用。因为wwwroot下没有bin文件夹。

包含 Renci.SshNet 的正常方式是什么?

问候, 振宇

my function.proj screenshot

【问题讨论】:

  • 在Hury的指导下,手动上传.dll就可以编译了。但是,是否应该从 Nuget 自动下载,而不需要手动上传?此外,在 SSH.NET.2016.1.0 包中,最高版本只有 netstandard1.3。该版本在 Azure Function v2.0 中不起作用它会抛出“无法加载指定的文件。”
  • 我刚刚发现,SSH.NET 在 Azure Function 中无法与 .Net Core 2 一起使用。

标签: nuget azure-functions ssh.net


【解决方案1】:

您可以在 wwwroot 下添加 bin 文件夹,并通过 azure function“Platform features”标签下的“Advanced tools(kudu)”将 dll 拖到其中。

首先,点击“kudu”(如下截图)

然后点击“调试控制台”-->“CMD”-->“站点”-->“wwwroot”-->“新建文件夹”并将文件夹命名为“bin”。

然后将dll文件拖到bin文件夹中,即可通过#r命令使用(如下图)

更新:

你可以尝试修改你的function.proj如下:

<PackageReference Include="Renci.SshNet.Async" Version="1.4.0" />

在你的函数中使用命令“using Renci.SshNet;”。

并删除你之前添加的 Renci.SshNet 的#r 行。

请试一试。

【讨论】:

  • 嗨,快,感谢您的快速回复。是的,.dll 可通过手动上传获得。但是,是否应该从 Nuget 自动下载,而不需要手动上传?另外,在 SSH.NET.2016.1.0 包中,最高版本只有 netstandard1.3。该版本在 Azure Function v2.0 中不起作用它会抛出“无法加载指定的文件。”
  • 嗨@ZhenyuWang,这篇文章可能对你有帮助:stackoverflow.com/questions/36411536/…
  • 嗨,快点,我在问这个问题之前读了那篇文章。我刚刚发现,SSH.NET 不适用于 Azure Function 中的 .Net Core 2。但它在本地控制台应用程序中工作
  • 嗨@ZhenyuWang,能否分享一下你的“function.proj”截图
  • 嗨,快点,截图添加在原始帖子中。 (我只能添加链接) Nuget 包没有安装。直到我使用您建议的方式从 kudu 手动上传,然后我才能使用 'Renci.SshNet'
猜你喜欢
  • 1970-01-01
  • 2016-08-26
  • 2016-07-24
  • 2011-05-05
  • 1970-01-01
  • 2022-01-12
  • 2016-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多