4

我正在尝试使用 csx 文件创建一个带有服务总线队列触发器模板的 azure 函数程序。但我在解决依赖关系时遇到问题。老实说,我对 [this doc] ( https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-csharp ) 中提到的项目结构感到非常困惑。我尝试了两种方法。

第一种方法... 在 Visual Studio 代码中创建一个名为 MyAzureFunc 的文件夹,并手动添加 function.json、project.json、project.lock.json 和 run.csx。然后,在 MyAzureFunc 文件夹之外,我添加了 host.json 和 local.settings.json。这种方法会导致依赖性问题。

文件夹结构

第二种方法... 在 Visual Studio 代码中使用服务总线队列模板创建一个 Azure Function 项目,该代码会生成完全不同的文件夹和项目结构。然后,我将删除大部分自动生成的文件并手动添加第一种方法中提到的结构。这仍然会导致依赖性问题。

服务总线队列项目结构

我认为可能发生这种情况的一些可能原因如下...... 1. 框架版本 - 我的 project.json 调用“net46”,但是当我使用服务总线队列模板在 Visual Studio 代码中创建一个 azure 函数时,它实现了“ netcoreapp2.1" 2. 需要运行一些命令来识别包依赖关系 3. 一些项目配置需要使用 csx

我相信这里的重要文件是project.json。下面是代码...

{
    "frameworks": {
      "net46":{
        "dependencies": {
          "MongoDB.Driver": "2.6.1",
          "MongoDB.Driver.Core": "2.6.1",
          "MongoDB.Bson": "2.6.1",
      "SharpZipLib": "0.86.0",
      "RabbitMQ.CLient": "5.0.1"
        }
      }
     }
  }

下面是我试图在我的 csx 文件中使用的包的代码......

#r "Newtonsoft.Json"
#r "Microsoft.ServiceBus"

using System;
using System.IO;
using System.Text;
using System.Threading.Tasks;
using Microsoft.ServiceBus.Messaging; --> ERROR
using Newtonsoft.Json; --> ERROR
using MongoDB.Driver; --> ERROR
using MongoDB.Bson; --> ERROR
using MongoDB.Bson.IO; --> ERROR
using RabbitMQ.Client; --> ERROR
using ICSharpCode.SharpZipLib.Zip.Compression.Streams; --> ERROR
4

0 回答 0