如何将外部程序集与 Microsoft Azure Function Apps 一起使用?

How do I use external assemblies with Microsoft Azure Function Apps?

documentation 说您可以将 DLL 放在 bin 文件夹中并使用特殊的 #r 语法引用它,但是在 Azure 门户中我找不到如何上传这些 DLL。这可能吗?如果可能,应该如何实现?

这是可能的。

您可以使用 Kudu 上传您的二进制文件:

  1. 打开应用程序的 Kudu 门户。如果您的 Functions App 的 URL 是 samplefunctions.azurewebsites.net,则转到 samplefunctions.scm.azurewebsites.net

  2. 单击 Debug console 菜单和 select PowerShell。这将打开一个 PowerShell 控制台和一个文件资源管理器。导航至 D:\home\site\wwwroot.

  3. 您应该会看到一个以现有函数命名的文件夹。导航到该文件夹​​并将二进制文件拖放到 bin 文件夹中。

  4. 现在您可以将它们与 #r 指令一起使用。

我认为您还应该能够配置将库持续部署到 Functions(例如从 Git 存储库)。前往 Function app settings -> Configure Continuous Integration.

Azure 函数现在具有对预编译函数的运行时支持。 https://blogs.msdn.microsoft.com/appserviceteam/2017/03/16/publishing-a-net-class-library-as-a-function-app/

您需要使用一个 Web 项目,该项目将提供 IntelliSense、本地调试和发布到 Azure 的完整开发体验。上面的说明详细说明了操作方法。

您可以通过 Visual Studio Functions Tools 部署具有一些外部引用的函数。

只需在 visual studio 部署设置中配置您的 Azure 帐户,即可使用您的 azure 功能并进行部署。所有引用都将在您的 Azure 函数应用程序中。

您可以使用Octopus Deploy(网站部署步骤)部署功能。

推送到octopus deploy的nuget包的文件夹结构应该是:

nuget_package.nupkg
    |--bin
        |--*.dll
    |--run.csx 
    |--function.json

您可以使用相对路径添加程序集引用。

在 portal.azure.com -> 功能应用程序中,在右侧,查看文件 -> 上传 dll(例如:YourDllName.dll)。

在run.csx中输入#r "./YourDllName.dll"