【问题标题】:How do I use external assemblies with Microsoft Azure Function Apps?如何将外部程序集与 Microsoft Azure Function Apps 一起使用?
【发布时间】:2016-08-02 06:05:04
【问题描述】:

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

【问题讨论】:

  • 看起来问题是一样的,但答案却大不相同。该答案似乎不适用,但其中的链接提到了我认为正确的答案......

标签: azure azure-functions


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      只需通过 Visual Studio Functions Tools 进行部署,您就可以部署具有一些外部引用的函数。

      只需在您的 Visual Studio 部署设置中配置您的 Azure 帐户,即可使用您的 Azure 功能并进行部署。所有引用都将在 Azure 上的 Function App 中。

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

          这是可能的。

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

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

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

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

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

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

          【讨论】:

          • 那么 C# 中的 Azure Functions 在后台使用 ScriptCS 吗?
          • 我已经这样做了,但它会引发错误:找不到元数据文件“”。有什么想法吗?
          • 这不再有效,我得到:run.csx(1,1): error CS0006: Metadata file 'Test.dll' could not be found
          • 经过更多测试,我发现我错过了bin文件夹步骤。按照答案中的描述导航到 Kudu 后: 1. 在函数文件夹创建一个bin 文件夹。 2. 将 DLL 文件上传到 bin 文件夹中。 3. 使用#r "Test.dll" 在csx 文件中引用它们。例如:D:\home\site\wwwroot\test1\bin\Test.dll 其中“test1”是函数名。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-03-13
          • 2023-04-02
          • 1970-01-01
          • 2021-11-28
          • 2022-11-02
          • 2011-09-22
          • 1970-01-01
          相关资源
          最近更新 更多